数组中的OR函数问题

时间:2016-09-06 21:54:57

标签: arrays excel-formula

这是我的完整公式:

{= 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 马特

1 个答案:

答案 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确认。