如何提取客户最后一笔采购金额?求适用的聚合函数
提取客户最后一笔采购金额的Excel实现方案
针对你需要按客户分组汇总、提取最后一笔采购金额的需求,Excel有多种内置方法可以实现,无需自定义函数,以下是几种常用方案:
1. 适合Excel 365/2021及以上版本:XLOOKUP或TAKE+FILTER
如果你的表格已经按日期升序排序,直接取每个客户组的最后一条采购金额即可,用TAKE+FILTER公式最简洁:
=TAKE(FILTER($C$2:$C$100, $A$2:$A$100=E2), -1)
- 说明:
FILTER筛选出当前客户(E2为目标customer_id)的所有采购金额,TAKE(-1)取筛选结果的最后一项(因原表按日期排序,最后一项即为最晚采购的金额)。
如果表格未严格排序,用XLOOKUP匹配最大日期对应的金额:
=XLOOKUP(MAX(IF($A$2:$A$100=E2, $B$2:$B$100)), $B$2:$B$100, $C$2:$C$100, "", 0, -1)
- 说明:先通过
MAX(IF(...))找到当前客户的最晚采购日期,再用XLOOKUP反向查找该日期对应的采购金额。
2. 兼容所有Excel版本:INDEX+MATCH+MAX组合
如果使用旧版Excel,可通过数组公式实现:
=INDEX($C$2:$C$100, MATCH(MAX(IF($A$2:$A$100=E2, $B$2:$B$100)), $B$2:$B$100, 0))
- 注意:旧版Excel需按
Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可。
3. 大数据量首选:Power Query分组汇总
如果采购明细数据量较大,用Power Query分组更高效且不易出错:
- 步骤1:选中数据区域,点击「数据」选项卡→「从表格/区域」导入Power Query编辑器
- 步骤2:选中
customer_id列,点击「转换」选项卡→「分组依据」 - 步骤3:在分组设置中添加以下规则:
date:操作选「最大值」,字段选datepurchase_counter:操作选「计数」,字段选customer_idamount_of_first_purchase:操作选「自定义」,公式输入List.First([$_Total_purchase])(原表按日期排序时,第一个值即为首单金额)amount_of_last_purchase:操作选「自定义」,公式输入List.Last([$_Total_purchase])(原表按日期排序时,最后一个值即为末单金额)
- 步骤4:点击「确定」后,将结果加载回Excel即可得到完整的客户汇总表
内容的提问来源于stack exchange,提问作者sher
相关产品推荐
相关产品推荐

