[英]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.