-1

Excel ファイルに次のデータがあります。

シート 1

Product      Quantity
Alpha        100
Bravo        200
Charlie      300

シート 2

Product      Quantity
Bravo        100
Delta        200

シート 3

Product      Quantity
Charlie      100
Delta        200

複数のシートにまたがるすべてのレコードを取得し、上位の製品をまとめた Excel シートを作成したいと考えています。

概要

Product      Quantity
Charlie      400
Delta        400
Bravo        300
Alpha        100

これを行う方法はありますか?

4

3 に答える 3

1

仮定:

1) 各タブのデータは、A 列から B 列の 2 行目から始まり、製品は A 列に表示されます。

2) これらのタブのいずれにおいても、データが 1000 行を超えることはありません (この値の数式 (および名前付き範囲) 内のすべての出現箇所を適切に大きな数に変更します)。

3)どのタブのデータのにも空白のセルはありません

4) Excel 2007 以降を使用している

次に、まず、関連するすべてのシート名 (サマリー シートを除く) をサマリー シートの水平方向の範囲 (D1:F1 など) にリストし、タブに表示されるとおりに正確にリストするようにします。

次に、Name Manager に移動して、2 つの新しい名前を定義します。

名前: Arry1

参照: =MMULT(TRANSPOSE(COUNTIFS(INDIRECT("'"&$D$1:$F$1&"'!A2:A1000"),A$2:A2,INDIRECT("'"&$D$1:$F)) $1&"'!A2:A1000"),"<>")),ROW(INDIRECT("1:"&COUNTA(A$2:A2)))^0)

名前: Arry2

参照: =SUBTOTAL(3,INDIRECT("'"&$D$1:$F$1&"'!A2:A1000"))

(これらを作成するときは、こことまったく同じように表示されることを確認してください。貼り付けると、数式が引用符で囲まれてしまうことがありますが、これは正しくありません。)

概要シートのセル A2 に次のように入力します。

=シート1!A2

(または、最初のシートの名前は何でも。)

次に、概要シートの A3 に、この配列数式** :

=IFERROR(INDEX(INDIRECT("'"&INDEX($D$1:$F$1,MATCH(FALSE,Arry1=TRANSPOSE(Arry2),0))&"'!A2:A1000"),MATCH(0,COUNTIF( A$2:A2,INDIRECT("'"&INDEX($D$1:$F$1,MATCH(FALSE,Arry1=TRANSPOSE(Arry2),0))&"'!A2:A1000")),0))," ")

空白ができ始めるまで下にコピーします。

B2 (非配列):

=IF(A2="","",SUMPRODUCT(SUMIF(INDIRECT("'"&$D$1:$F$1&"'!A:A"),A2,INDIRECT("'"&$D$1: $F$1&"'!B:B"))))

繰り返しますが、空白ができ始めるまで下にコピーします。

よろしく

**配列数式は、「標準」数式と同じ方法では入力されません。Enter キーだけを押す代わりに、最初に CTRL と SHIFT を押したままにしてから Enter キーを押します。正しく行った場合は、Excel によって数式が中かっこ {} で囲まれていることがわかります (ただし、これらを自分で手動で挿入しようとしないでください)。

于 2014-05-30T15:07:12.307 に答える
1

編集: セルにシート名を含めるよりも、Sheetsなどの別の名前付き範囲として使用することをお勧めします。

={"シート 1","シート 2","シート 3"}

式は次のとおりです。

=IFERROR(INDEX(INDIRECT("'"&INDEX(Sheets,MATCH(FALSE,Arry1=TRANSPOSE(Arry2),0))&"'!A2:A1000"),MATCH(0,COUNTIF(A$2:A2,INDIRECT) ("'"&INDEX(Sheets,MATCH(FALSE,Arry1=TRANSPOSE(Arry2),0))&"'!A2:A1000")),0)),"")

よろしく

于 2014-05-30T16:59:29.577 に答える
0

複数の連結範囲を持つピボットテーブルを作成します。画像付きの例(ただし、あなたのケースはより単純です)については、こちらを参照してください。

于 2014-05-30T13:24:54.537 に答える