EXCEL中如果一列包含某个字母,相对应的一列求和
我做了一个表,要求多条件求和,其中一个公式是=SUMPRODUCT(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*($C$3:$C$...
我做了一个表,要求多条件求和,其中一个公式是=SUMPRODUCT(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*($C$3:$C$60000="*L*")*($D$3:$D$60000)),就是在C列里,包含L的字母(L可能在中间,也可能结尾,不一定的)的相对应的D列求和,现在结果出不来,我把包含L的公式换成"*"&"L"&"*"也出不来,把符号=换成>=结果倒是能出来,可是不准确,到底是什么原因呢?求高手帮帮我吧。
请不要给我说用筛选--自动筛选--自定义来查找,我会呢,因为要的结果太多了,我实在扛不住啊。
因为是多条件筛选求和,所以不适用SUMIF函数,真的很让人郁闷啊! 展开
请不要给我说用筛选--自动筛选--自定义来查找,我会呢,因为要的结果太多了,我实在扛不住啊。
因为是多条件筛选求和,所以不适用SUMIF函数,真的很让人郁闷啊! 展开
展开全部
你在编辑栏拖黑你公式中的 ($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))}
二楼正解,三楼错误
同样的方式分别验证一下二、三楼公式
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))}
二楼正解,三楼错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的办法是:
一。插入一列辅助项假设为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))
注:在很多数据情况下,没找到合适公式时,可以暂时用辅助的方法。辅助数据可以隐藏,美观影响应该不大。
一。插入一列辅助项假设为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))
注:在很多数据情况下,没找到合适公式时,可以暂时用辅助的方法。辅助数据可以隐藏,美观影响应该不大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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))
就行了
=SUMPRODUCT(($A$3:$A$60000=D$53)*($B$3:$B$60000=$B54)*(ISNUMBER(find("L",$C$3:$C$60000)))*($D$3:$D$60000))
就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将公式改为
=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中也可用.
=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中也可用.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询