第1个回答 2009-02-28
你在编辑栏拖黑你公式中的 ($C$3:$C$60000="*L*") 然后按F9键看看生成了什么:是不是生成的内存数组中全是FALSE
同样的方式分别验证一下二、三楼公式
ISNUMBER(find("L",$C$3:$C$60000)) 生成了一个正确的数组
countif($C$3:$C$60000,"*L*")>0 仅仅生存了一个逻辑值TRUE
也就是说思三楼的公式中 countif($C$3:$C$60000,"*L*")>0 这一段,根本未起任何作用,整个公式能生成结果,但是结果是错误的。
SUMPRODUCT()支持数组间运算,你可以将二楼公式中如 $A$3:$A$60000=D$53;$B$3:$B$60000=$B54;$D$3:$D$60000 分别用上述方法试一试,看看是不是均生成的数组。
当然二楼的公式还可以等效于下面的数组公式
={SUM(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*(ISNUMBER(find("L",$C$3:$C$60000)))*($D$3:$D$60000))}
二楼正解,三楼错误
第2个回答 2013-02-22
我的办法是:
一。插入一列辅助项假设为F列,F3公式为=IF(FIND("L",C33),1,0)然后复制F3到F3:F60000。此时IF只有两个结果1或#VALUE。0是不会显示的,FIND检测不到就显示#VALUE
二。您的($C$3:$C$60000="*L*")改成(SUMIFS($C$3:$C$60000,$F$3:$F$60000,1))
注:在很多数据情况下,没找到合适公式时,可以暂时用辅助的方法。辅助数据可以隐藏,美观影响应该不大。
第3个回答 推荐于2016-10-13
sumproduct不支持通配符*L*查找,公式改为
=SUMPRODUCT(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*(ISNUMBER(find("L",$C$3:$C$60000)))*($D$3:$D$60000))
就行了本回答被提问者采纳
第4个回答 2009-02-28
将公式改为
=SUMPRODUCT(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*(countif($C$3:$C$60000,"*L*")>0)*($D$3:$D$60000))
就ok,一定正确,此公式在2003中也可用.