Excel中使用函数统计表格隔行特定字符串出现次数的问题
问题根因
你现有公式的问题出在OR()函数的逻辑上:Excel的OR()不支持二维数组的逐元素运算,会把整个A1:D5="X"、A1:D5="Y"的判断结果聚合为单个布尔值——只要范围内存在任意一个X或Y就返回TRUE(对应数值1),所以最终统计的是符合行筛选条件的行数,而非匹配的单元格总数。
可用解决方案
方案1:保留原隔行判断逻辑
把OR()替换为数组加法即可实现逐元素的“或”判断,正确公式如下:
统计Ali行:=SUMPRODUCT((MOD(ROW(A1:D5)-ROW($A$2),2)=0)*((A1:D5="X")+(A1:D5="Y")>0))
统计Beth行只需把公式里的$A$2替换为$A$3即可。
原理说明:两个布尔数组相加后大于0,就代表对应单元格是X或Y,等效于逐元素执行OR判断,且能被SUMPRODUCT正常识别统计
方案2:按姓名匹配(更稳定,不受行顺序变动影响)
如果你的A列存储的是Ali/Beth的姓名,更推荐直接按姓名筛选,不需要依赖行的交替规则:
统计Ali行:=SUMPRODUCT((A1:A5="Ali")*((B1:D5="X")+(B1:D5="Y")>0))
统计Beth行把公式里的"Ali"替换为"Beth"即可。
内容的提问来源于stack exchange,提问作者JoDraX
相关产品推荐
相关产品推荐

