2017-05-18 9 views
0

ブックがあり、各シートには同じフォーマットの大量のデータが含まれています。私がしたいのは、要約シートに式を入力してデータシート全体からデータを集計し、一連の基準に基づいて合計するデータを選択することです。Excelで条件付きの複数のシートにまたがる合計配列

シートのリストの名前は「AdHoc_Sheets」で、条件のリストの名前は「Uncontrollable_Compensation」です。

初の試み:

=SUMPRODUCT(SUMIF(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),A40,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E"))) 

場合にのみ、単一の基準(この場合の 'A40')これがうまく機能が必要とされています。私が探している課題は、それを一連の基準に変えることです。

第二の試み:

={SUMPRODUCT(SUM(IF(ISERROR(MATCH(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),TRANSPOSE(Uncontrollable_Compensation),0)),0,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E"))))} 

それはCSE'dあるときそれはCSE'dいないときはゼロを返し、#N/Aエラー。配列のジャグリングのダイナミクスが私を乱してしまっています.MMULTやその他の方法を使う必要があるかどうかはわかりません。前もって感謝します。

+0

あなたの新しい状態は、正確には何語で表現されますか? C列の値がUncontrollable_Compensationに含まれている値と等しくないことを確認しますか? –

+0

実際には、数式の結果は、範囲 'AdHoc_Sheets'内のすべてのシートの列Cの値が 'Uncontrollable_Compensation'の範囲内にある 'AdHoc_Sheets'範囲内のすべてのシートの列Eのすべての値の合計でなければなりません。 –

+0

ありがとうございます。 Uncontrollable_Compensationは垂直または水平ベクトルですか? –

答えて

0

列Cのエントリは、数値ではないテキストあると仮定すると、配列数式**:あなたは任意損なうことなく全体の列を参照すると「逃げる」ことができないような構成によれば

=SUM(IF(ISNUMBER(MATCH(T(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"C1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0)),Uncontrollable_Compensation,0)),N(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"E1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0))))`

パフォーマンスにしたがって、行1から行100までの範囲の私の選択は、明らかにあなたが変更することができますが、可能な限り小さくしてください。

よろしく

**配列数式は、「標準」の式と同じ方法で入力されていません。 ENTERだけを押すのではなく、まずCTRLとSHIFTを押したまま、ENTERを押します。正しく実行した場合、Excelは式の中に{}の中括弧を挿入します(手動では挿入しないでください)。

+0

ありがとうXOR。 #N/Aエラーを返します... Uncontrollable_Compensationの範囲(すべてのテキスト)をテストするときに 'false'の配列を強制するので、 'ISNUMBER'をインクルードするとどうなるかと思います。 ISNUMBER関数を使って数式を試してみたら、#N/Aが返されます。評価式の結果をスキャンすると、最初のシートのc1、2番目のシートのc2、3番目のシートのc3、「AdHoc_Sheets」にリストされている7番目(最後の)シートのc7まで、 、その後93#N/As。 –

+0

お詫び申し上げます。私はAdHoc_Sheetsが水平ベクトルであることを間違いなく仮定しました。あなたのコメントから、実際には垂直ベクトルであると推測しますか? –

+0

はい、正しいです。両方の名前付き範囲は垂直ベクトルとして設定されます。 –

関連する問題