Excel技巧:按Sale_ID提取对应最高销售占比人员姓名
提取对应Sale_ID最高销售占比人员的Excel解决方案
以下提供三种适配不同Excel版本的实现方法,按需选择:
方法1:Excel 365/2021 动态数组公式
在新增的「Highest sales」列第一个数据单元格(如D2)输入以下公式,下拉填充即可:
=XLOOKUP(MAXIFS($C:$C,$A:$A,A2),$C:$C,$B:$C,"",0,1)
- 逻辑说明:
MAXIFS($C:$C,$A:$A,A2)提取当前行Sale_ID对应的最高销售占比;XLOOKUP根据该占比匹配对应姓名,若有多个相同最高占比,返回第一个出现的姓名。 - 优化建议:避免整列引用,改用实际数据范围(如
$C$2:$C$100)提升计算效率。
方法2:旧版Excel(无动态数组)数组公式
在D2单元格输入以下公式,按 Ctrl+Shift+Enter 完成数组输入后下拉填充:
=INDEX($B$2:$B$5,MATCH(MAX(IF($A$2:$A$5=A2,$C$2:$C$5)),$C$2:$C$5,0))
- 逻辑说明:
IF($A$2:$A$5=A2,$C$2:$C$5)筛选当前Sale_ID的所有占比,MAX取最大值;INDEX+MATCH匹配该最大值对应的姓名。
方法3:Power Query(适合大数据量)
若数据量较大,用Power Query批量处理更高效:
- 选中数据区域,点击「数据」选项卡 → 「从表格/区域」加载到Power Query编辑器;
- 点击「转换」选项卡 → 「分组依据」:分组列选
Sale_ID,新列名设为Max_Share,操作选「最大值」,列选Share of sales(%); - 回到原始查询,点击「合并查询」:合并依据选
Sale_ID,选择刚分组的查询,仅保留Max_Share列; - 再次合并查询:合并依据选
Sale_ID和Max_Share,选择原始查询,保留Name列并重命名为Highest sales; - 删除多余辅助列,点击「关闭并上载」将结果导出回Excel。
注意事项
- 若同一Sale_ID下有多名人员占比相同且均为最高值,上述方法会返回第一个出现的姓名;
- 确保
Share of sales(%)列是数值格式,避免公式计算错误。
内容的提问来源于stack exchange,提问作者EmBL
相关产品推荐
相关产品推荐

