如何在 Countifs 中排除空字符串
How to Exclude Empty String in Countifs
我有一个 excel sheet 有 2000 多行和 15 列。我需要根据其他列的条件计算特定列中的条目。这是 sheet:
的示例
A | B | C | D | E
-------------------------------------------------
Fruit | Origin | Price | Qty | Feedback
-------------------------------------------------
Apple | Amazon | 100 | 4 | Great
Banana | India | 100 | 1 |
Orange | Africa | 200 | 2 | Good
Apple | Amazon | 300 | 5 |
Guava | India | 100 | 1 | Great
Banana | India | 400 | 5 |
Orange | India | 200 | 6 |
Apple | Amazon | 100 | 8 | Good
Kiwi | Africa | 300 | 5 |
Banana | Africa | 500 | 4 |
Apple | Amazon | 100 | 1 | Good
Orange | Amazon | 300 | 5 |
Kiwi | India | 200 | 4 |
Guava | India | 100 | 1 | Good
Apple | Amazon | 300 | 5 | Good
Banana | Africa | 100 | 4 |
Apple | Amazon | 200 | 1 | Great
Guava | India | 200 | 5 |
Orange | Amazon | 300 | 1 | Good
Apple | Amazon | 200 | 5 | Good
现在我需要获取亚马逊产地苹果水果的反馈数量,价格大于 100,数量大于 2。所以我的公式为:
=COUNTIFS(A:A, "Apple", B:B, "Amazon", C:C, ">100", D:D, ">2")
现在我想添加另一个条件来获得已填充(非空)的反馈,所以我的公式如下:
=COUNTIFS(A:A, "Apple", B:B, "Amazon", C:C, ">100", D:D, ">2", E:E, "<>")
理想情况下,上述公式会产生 3
的结果。现在,如果列 E
中的空白单元格是空字符串 ""
,则上面的公式 returns 4
,因为公式将 ""
视为与填充值相同.任何人都可以建议一个公式,在该公式中我将在我的 COUNTIF 条件中排除空字符串 ""
,这样即使列 E
中的空字符串,我的结果也是 3
?
提前感谢您的帮助...
不错的小问题,确实是一个烦人的问题。 COUNTIFS()
支持通配符。一种 ”?”代表任何单个字符,而“*”代表任何 0+ 个字符。因此,将这两个通配符组合成“?*”,我们告诉函数测试单元格是否包含 至少一个字符 (可能更多)。有趣的是,零宽度字符串 =""
不会由此触发,因为根据定义(并根据其名称建议)它们确实是 零 宽度字符串。
我认为对于您的示例数据,您希望 return“2”,对吧?无论如何,尝试:
=COUNTIFS(A:A,"Apple",B:B,"Amazon",C:C,">100",D:D,">2",E:E,"?*")
考虑使用类似的东西:
=SUMPRODUCT(--(A2:A100="Apple")*(B2:B100="Amazon")*(C2:C100>100)*(D2:D100>2)*(E2:E100<>""))
SUMPRODUCT()
支持一种非常直观的方法来测试是否为空。
唯一有效的是第 16 行和第 21 行。
编辑#1:
参考资料如下:
我有一个 excel sheet 有 2000 多行和 15 列。我需要根据其他列的条件计算特定列中的条目。这是 sheet:
的示例 A | B | C | D | E
-------------------------------------------------
Fruit | Origin | Price | Qty | Feedback
-------------------------------------------------
Apple | Amazon | 100 | 4 | Great
Banana | India | 100 | 1 |
Orange | Africa | 200 | 2 | Good
Apple | Amazon | 300 | 5 |
Guava | India | 100 | 1 | Great
Banana | India | 400 | 5 |
Orange | India | 200 | 6 |
Apple | Amazon | 100 | 8 | Good
Kiwi | Africa | 300 | 5 |
Banana | Africa | 500 | 4 |
Apple | Amazon | 100 | 1 | Good
Orange | Amazon | 300 | 5 |
Kiwi | India | 200 | 4 |
Guava | India | 100 | 1 | Good
Apple | Amazon | 300 | 5 | Good
Banana | Africa | 100 | 4 |
Apple | Amazon | 200 | 1 | Great
Guava | India | 200 | 5 |
Orange | Amazon | 300 | 1 | Good
Apple | Amazon | 200 | 5 | Good
现在我需要获取亚马逊产地苹果水果的反馈数量,价格大于 100,数量大于 2。所以我的公式为:
=COUNTIFS(A:A, "Apple", B:B, "Amazon", C:C, ">100", D:D, ">2")
现在我想添加另一个条件来获得已填充(非空)的反馈,所以我的公式如下:
=COUNTIFS(A:A, "Apple", B:B, "Amazon", C:C, ">100", D:D, ">2", E:E, "<>")
理想情况下,上述公式会产生 3
的结果。现在,如果列 E
中的空白单元格是空字符串 ""
,则上面的公式 returns 4
,因为公式将 ""
视为与填充值相同.任何人都可以建议一个公式,在该公式中我将在我的 COUNTIF 条件中排除空字符串 ""
,这样即使列 E
中的空字符串,我的结果也是 3
?
提前感谢您的帮助...
不错的小问题,确实是一个烦人的问题。 COUNTIFS()
支持通配符。一种 ”?”代表任何单个字符,而“*”代表任何 0+ 个字符。因此,将这两个通配符组合成“?*”,我们告诉函数测试单元格是否包含 至少一个字符 (可能更多)。有趣的是,零宽度字符串 =""
不会由此触发,因为根据定义(并根据其名称建议)它们确实是 零 宽度字符串。
我认为对于您的示例数据,您希望 return“2”,对吧?无论如何,尝试:
=COUNTIFS(A:A,"Apple",B:B,"Amazon",C:C,">100",D:D,">2",E:E,"?*")
考虑使用类似的东西:
=SUMPRODUCT(--(A2:A100="Apple")*(B2:B100="Amazon")*(C2:C100>100)*(D2:D100>2)*(E2:E100<>""))
SUMPRODUCT()
支持一种非常直观的方法来测试是否为空。
唯一有效的是第 16 行和第 21 行。
编辑#1:
参考资料如下: