Excel公式需求:按唯一交易名称汇总金额并取Top10最大值
Excel按交易名称汇总金额并提取金额总和前10项的解决方案
方法一:Excel 365/2021 动态数组公式(一步到位)
假设交易名称在A2:A9,金额在B2:B9(若金额列带£符号,需先通过=VALUE(SUBSTITUTE(B2, "£", ""))转换为纯数值格式),直接用以下公式即可生成按金额总和降序排列的前10项:
=TAKE(SORT(LET(uniqueNames, UNIQUE(A2:A9), totals, SUMIF(A2:A9, uniqueNames, B2:B9), HSTACK(uniqueNames, totals)), 2, -1), 10)
公式说明:
UNIQUE(A2:A9):提取所有唯一交易名称SUMIF(A2:A9, uniqueNames, B2:B9):对每个唯一名称计算金额总和HSTACK:将名称和总和合并为两列SORT(..., 2, -1):按总和列(第2列)降序排序TAKE(..., 10):提取前10行结果
方法二:旧版Excel(无动态数组)分步操作
- 提取唯一交易名称:在空白列(如D列)的D2单元格输入数组公式,按
Ctrl+Shift+Enter确认,下拉直到出现#N/A:=INDEX($A$2:$A$9, MATCH(0, COUNTIF($D$1:D1, $A$2:$A$9), 0)) - 计算金额总和:在E2单元格输入公式,下拉填充:
=SUMIF($A$2:$A$9, D2, $B$2:$B$9) - 排序取前10:选中D:E列,按E列(总和列)降序排序,直接取前10行即可。
方法三:数据透视表(无需公式,直观高效)
- 选中所有数据区域,点击「插入」→「数据透视表」,选择放置位置。
- 把「Transaction Name」拖到「行」区域,「Amount」拖到「值」区域,右键值区域的「Amount」→「值字段设置」,选择「求和」。
- 右键数据透视表的行标签,选择「排序」→「降序」,按「求和项:Amount」排序。
- 直接查看并提取前10行结果即可。
内容的提问来源于stack exchange,提问作者Conor
相关产品推荐
相关产品推荐

