Excel中统计客户购买天数:求替代COUNTIFS的公式方案
统计客户购买天数的Excel公式方案
一、Excel 365/2021 动态数组公式(推荐)
如果你的Excel支持动态数组功能,操作最简便:
- 生成不重复客户ID列表:在空白单元格(比如E2)输入公式:
公式会自动生成所有154个不重复的客户ID,无需手动整理。=UNIQUE($C$2:$C$40001) - 计算对应购买天数:在F2单元格输入公式,下拉填充即可:
公式逻辑:先用=COUNT(UNIQUE(FILTER($A$2:$A$40001,$C$2:$C$40001=E2)))FILTER筛选出当前客户的所有购买日期,再用UNIQUE去除单日多次购买的重复日期,最后用COUNT统计去重后的日期数量,也就是该客户的购买天数。
二、旧版Excel(2019及更早)数组公式
如果你的Excel不支持动态数组,需要用数组公式实现:
- 先提取不重复客户ID:通过「数据」选项卡的「高级筛选」,将C列的不重复值复制到E列(设置条件区域为C列,勾选「选择不重复的记录」)。
- 计算购买天数:在F2单元格输入以下公式,然后按Ctrl+Shift+Enter(数组公式必须按三键确认),再下拉填充:
公式逻辑:=SUM(IF($C$2:$C$40001=E2,1/COUNTIFS($C$2:$C$40001,E2,$A$2:$A$40001,$A$2:$A$40001),0))COUNTIFS统计当前客户每个日期的购买次数,1/次数会让同一日期的所有记录变成1/n,求和后同一日期的总和就是1,最终总和就是去重后的购买天数。
为什么单独用COUNTIFS不行?
COUNTIFS只能统计同时满足「客户ID匹配」和「日期匹配」的记录数,但无法对日期去重,所以直接用它会把单日多次购买的记录重复计数,达不到统计购买天数的目的。
内容的提问来源于stack exchange,提问作者Lori Paulme
相关产品推荐
相关产品推荐

