0

私は次のような簡単な式を持っています:IFERROR(SUM(SUMIFS(TBL1[SUMCOLUMN],TBL1[ACTIVITY],{"0001","0002","0003"})),0)そしてそれはうまくいきます。

{"0001","0002","0003"}しかし、列の値に基づいてパーツを異なるものにし たいので、式を次のように変更します。

IFERROR(SUM(SUMIFS(TBL1[SUMCOLUMN],TBL1[ACTIVITY],IF([@TYPE]="EHT",{"0001","0002","0005"},IF([@TYPE]="CT",{"0003","0004","0007"},"0010")))),0)

そして、最初の配列値にのみ基づいて値を提供します。例:

IF([@TYPE]="EHT",{"0001","0002","0005"} //Gives me sum of only where "0001" and ignores "0002","0005" 
IF([@TYPE]="CT",{"0003","0004","0007"} //Gives me sum of only where "0003" and ignores "0004","0007" 

私はExcelが基準をテキストに変換していると思ったので、char(34)、異なる数の引用符、異なるセルに値を入れて参照するなど、さまざまな方法で遊んでみましたが、助けにはなりませんでした。私が見逃しているものはありますか?

サンプル テーブル: TBL1:

SUMCOLUMN アクティビティ
5 0001
20 0002
50 0003
...

TBL2:
タイプ 合計
EHT SUMIFS はこちら
CT SUMIFS はこちら
その他のSUMIFはこちら
4

3 に答える 3

0

なぜそれをしているのかわかりません - とても迷惑です。しかし、あなたの特定のケースでは、これは機能します:

=IFERROR(SUM(
  IF([@TYPE]="EHT",SUMIFS(TBL1[SUMCOLUMN],TBL1[ACTIVITY],{"0001","0002","0005"}),0),
  IF([@TYPE]="CT",SUMIFS(TBL1[SUMCOLUMN],TBL1[ACTIVITY],",{"0003","0004","0007"}),0),
  SUMIFS(TBL1[SUMCOLUMN],TBL1[ACTIVITY],"0010")
),0)

SUMIFS は結果の配列を返し、それらを合計しているので、基準を条件付きにしようとする代わりに、SUMIFS 全体を条件付きにします。

于 2014-08-12T00:03:30.377 に答える