- =SUMPRODUCT((MMULT(N(ISERROR(FIND({"珠海","中山"},A2:A60))),{1;1})=2)*MMULT(N(ISNUMBER(FIND({"湖北","湖南","黑龙江","广西","香港","辽宁"},B2:B60))),ROW($1:$6)^0),C2:C60)
复制代码
你的公式中SUMIFS用了数组作为条件判断SUMIFS(C:C,A:A,{"<>*珠海*","<>*中山*"},B:B,{"*湖北*","*湖南*","*黑龙江*","*广西*","*香港*","*辽宁*"}),带来一个维度匹配问题:
1、A:A,{"<>*珠海*","<>*中山*"}判断结果是两列多行,而B:B,{"*湖北*","*湖南*","*黑龙江*","*广西*","*香港*","*辽宁*"}是六列多行,在整个SUMIFS()中,如果列数不等,只按列数少的进行比较,并且是逐列一一比较,具体说,就是A列不含“珠海”得到一列逻辑结果,与B列含“湖北”的一列结果进行比对(同时满足),A列不含"中山"与B列不含"湖南"进行比对(同时满足),分别求出和来,而不会交叉考虑A列不含“珠海”,与B列不含"湖南"进行比,更不是全面考虑A列不含“珠海”及"中山"、B列含“湖北”、"湖南"的情形;而且因列数不等多出来的条件("黑龙江","广西","香港","辽宁")一律忽视(为0);
2、即使数组的列数相同,由于只是对应列进行比对,没有交叉考虑,不会“通盘”考虑,结果仍是出错! |