Excel按周统计B列唯一值:自定义公式计数为零求排查
问题:按周统计B列唯一值数量的公式排查
我有如下含空白内容的表格:
| Column A | Column B |
|---|---|
| date 1 | value 1 |
| date 2 | value 1 |
| date 3 | value 2 |
| date 4 | value 3 |
| date 5 | value 1 |
| value 4 |
需要按周统计B列的唯一值数量。当前使用的公式:
=countifs('All time Nebenrechnung Influencer Marketing'!$A:$A;">="&B$2;'All time Nebenrechnung Influencer Marketing'!$A:$A;"<="&B$3)
会重复计数(示例中统计结果为6,但实际应统计为4,因value 1重复出现)。我希望同一值一周内仅计数一次,自行编写的公式:
=count(unique(filter('All time Nebenrechnung Influencer Marketing'!$B$2:$B; ('All time Nebenrechnung Influencer Marketing'!$A$2:$A >= B$2) * ('All time Nebenrechnung Influencer Marketing'!$A$2:$A <= B$3) * ('All time Nebenrechnung Influencer Marketing'!$B$2:$B <> ""))))
却返回0,请问问题出在哪里?
公式返回0的原因及修正方案
日期格式不匹配
如果B$2、B$3的日期格式与A列日期格式不一致(比如一方是文本型,另一方是数值型),会导致日期比较条件全部不成立,Filter返回空数组,最终Count结果为0。
解决:用DATEVALUE()统一转换为数值型日期,将条件修改为DATEVALUE('All time Nebenrechnung Influencer Marketing'!$A$2:$A) >= DATEVALUE(B$2),或者直接确保所有日期单元格格式统一为数值型日期。无效日期行干扰
示例中存在A列为空白的行,Filter条件中直接用$A$2:$A >= B$2会对空白行进行判断,导致逻辑错误。可以增加ISNUMBER()判断A列是否为有效日期:
修正后的公式:=COUNT(UNIQUE(FILTER('All time Nebenrechnung Influencer Marketing'!$B$2:$B; ISNUMBER('All time Nebenrechnung Influencer Marketing'!$A$2:$A) * ('All time Nebenrechnung Influencer Marketing'!$A$2:$A >= B$2) * ('All time Nebenrechnung Influencer Marketing'!$A$2:$A <= B$3) * ('All time Nebenrechnung Influencer Marketing'!$B$2:$B <> ""))))Excel版本不支持动态数组
若使用的是Excel 2019及更早版本,不支持FILTER和UNIQUE函数,公式会返回错误值0。这种情况可以改用SUMPRODUCT结合逻辑判断的方案:=SUMPRODUCT(('All time Nebenrechnung Influencer Marketing'!$A$2:$A >= B$2)*('All time Nebenrechnung Influencer Marketing'!$A$2:$A <= B$3)*('All time Nebenrechnung Influencer Marketing'!$B$2:$B <>"")/(COUNTIFS('All time Nebenrechnung Influencer Marketing'!$B$2:$B;'All time Nebenrechnung Influencer Marketing'!$B$2:$B;'All time Nebenrechnung Influencer Marketing'!$A$2:$A;">="&B$2;'All time Nebenrechnung Influencer Marketing'!$A$2:$A;"<="&B$3)+('All time Nebenrechnung Influencer Marketing'!$A$2:$A < B$2)+('All time Nebenrechnung Influencer Marketing'!$A$2:$A > B$3)+('All time Nebenrechnung Influencer Marketing'!$B$2:$B="")))
内容的提问来源于stack exchange,提问作者Krystian Manthey
相关产品推荐
相关产品推荐

