簡體   English   中英

SumIfs 條件數組條件

[英]SumIfs conditional array criteria

我有一個簡單的公式,如: 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   ACTIVITY
5           0001
20          0002
50          0003
...

TBL2:
TYPE        TOTAL
EHT         SUMIFS GOES HERE
CT          SUMIFS GOES HERE
OTHER       SUMIFS GOES HERE

我不知道為什么這么做-這很煩人。 但是在您的特定情況下,這可以工作:

=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作為條件。

我知道這個問題有點老,但是最近我不得不做一些非常相似的事情,所以我隨機遇到了這個問題。

我嘗試了您的公式,當我Ctrl + Shift + Enter公式時,它可以很好地工作。

=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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM