You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel:实现排除发票列空值的Distinct Countifs统计需求

解决方案:统计符合条件的唯一客户数量

一、适用于Excel 365/2021(支持动态数组)的公式

使用FILTER筛选符合条件的客户,UNIQUE去重,ROWS统计数量:

=ROWS(UNIQUE(FILTER(Table1[客户名称],(Table1[Year]=I2)*(Table1[Month]=I3)*(Table1[Invoice#]<>"")),TRUE))
  • 公式逻辑:
    1. (Table1[Year]=I2)*(Table1[Month]=I3)*(Table1[Invoice#]<>""):同时匹配年份、7月创建、发票编号非空三个条件,返回逻辑值数组
    2. FILTER:根据逻辑值筛选出对应客户名称
    3. UNIQUE:对筛选后的客户名称去重
    4. ROWS:统计去重后的客户总数

二、适用于旧版Excel(不支持动态数组)的公式

用SUMPRODUCT结合COUNTIF实现去重计数:

=SUMPRODUCT((Table1[Year]=I2)*(Table1[Month]=I3)*(Table1[Invoice#]<>"")/COUNTIF(Table1[客户名称],Table1[客户名称]&""))
  • 公式逻辑:
    1. 前半部分(Table1[Year]=I2)*(Table1[Month]=I3)*(Table1[Invoice#]<>""):生成符合条件的标记数组(符合为1,不符合为0)
    2. COUNTIF(Table1[客户名称],Table1[客户名称]&""):计算每个客户名称在列表中的出现次数
    3. 用符合条件的标记除以对应客户的出现次数,每个唯一客户的所有符合条件行结果相加为1,SUMPRODUCT求和后得到唯一客户总数

原公式问题说明

你之前使用的=COUNTIFS(Table1[Year],I2,Table1[Month],I3)有两个局限:

  • 未添加Table1[Invoice#]<>的条件,无法排除发票编号为空的行
  • 仅统计符合条件的总行数,无法对重复客户名称去重

内容的提问来源于stack exchange,提问作者Christina K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:50:44