Excel中用COUNTIFS统计每位客户交易次数的方法(4.5万行数据)
统计每个Customer ID的交易次数解决方案
针对45000行的交易数据,以下是几种高效可行的方法,解决你之前尝试的方法失效问题:
方法一:数据透视表(推荐,大数据量最优)
这是处理这类统计需求最简便的方式,无需复杂公式:
- 选中包含
Customer ID和Transaction Date的整个数据区域(包括表头) - 点击菜单栏的插入 → 数据透视表,选择放置透视表的位置(新工作表或当前工作表空白处)
- 在透视表字段面板中:
- 将
Customer ID拖到行区域 - 将
Customer ID拖到值区域,默认会显示计数项:Customer ID,这就是该客户的交易次数
- 将
- 若值区域显示的是求和,右键点击值区域单元格 → 值字段设置 → 选择计数即可
方法二:动态数组公式(Excel 365/2021及以上版本)
利用Excel的动态数组功能自动生成唯一客户ID及对应交易次数:
- 获取所有唯一客户ID:在空白单元格(比如D2)输入
会自动向下填充所有不重复的=UNIQUE(A:A)Customer ID(注意排除表头,若A1是表头,可写=UNIQUE(A2:A45001)更精准) - 对应交易次数:在E2输入
这里的=COUNTIF(A:A, D#)D#是动态引用,会自动匹配D列的每个唯一ID,生成对应的交易次数;也可以用更简洁的合并公式:
输入后会直接在单元格下方生成所有客户的交易次数,与UNIQUE的结果一一对应=BYROW(UNIQUE(A2:A45001), LAMBDA(cust, COUNTIF(A:A, cust)))
方法三:兼容旧版Excel的数组公式
如果使用的是Excel 2019及更早版本,可通过以下步骤实现:
- 获取唯一客户ID:在D2输入数组公式(输入后按
Ctrl+Shift+Enter确认,不要直接回车)
下拉公式直到单元格显示=INDEX(A:A, MATCH(0, COUNTIF(D$1:D1, A:A), 0))#N/A,此时D列就是所有不重复的Customer ID - 统计交易次数:在E2输入
下拉公式即可得到每个客户的交易次数=COUNTIF(A:A, D2)
关于你之前方法失效的原因说明
- 使用
COUNTIFS结合ID与日期布尔比较:你实际统计的是每个客户在特定日期的交易次数,而非客户的总交易次数,所以切换ID后会因为日期组合唯一导致结果错误 - 拼接ID与日期后用
UNIQUE:得到的是所有唯一的交易记录(ID+日期),并非唯一客户ID,自然无法统计每位客户的总交易次数 SUMPRODUCT结合COUNTIF报错:大概率是拼接后的文本格式问题,或者公式引用范围错误,这种方法本身就不是最优解
内容的提问来源于stack exchange,提问作者violetunderground
相关产品推荐
相关产品推荐

