这是我的完整公式:
{= SUM(IF(ISNUMBER(表1 [Val / COArea Crcy]),表1 [Val / COArea Crcy],0)* IF(OR(表1 [成本要素名称] =“劳工”,表1 [成本要素] name] =“CONTRACTOR”),1,0)* IF(OR(表1 [成本要素] =“96500”,表1 [成本要素] =“96510”),1,0)* IF(左表(表1) ],LEN($ C $ 2))= $ C $ 2,1,0))}
我遇到问题的部分是:
IF(或(表1 [成本要素名称] =“劳工”,表1 [成本要素名称] =“承包商”),1,0)
如果我只使用“劳动力”或“承包商”,公式将起作用。但是,与OR功能组合会导致问题。
例如:如果(表1 [成本要素名称] =“人工”,1,0)将适用于人工,替换承包商将适用于该工作,总数将是正确的。我只是不明白为什么我的OR函数拉动所有类别而不仅仅是我想要的2。
-Thanks 马特
答案 0 :(得分:0)
就像所说的Array函数不喜欢逻辑运算符一样,因此对+
使用OR
而*
使用AND
。
=SUM(IF((ISNUMBER(Table1[Val/COArea Crcy]))*(((Table1[Cost element name]="LABOR")+(Table1[Cost element name]="CONTRACTOR"))>0)*(((Table1[Cost Element]="96500")+(Table1[Cost Element]="96510"))>0)*(LEFT(Table1[Object],LEN($C$2))=$C$2),Table1[Val/COArea Crcy]))
请记住这是一个数组公式,因此需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。