You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中按Empid分组获取每组第一个非空/非null的Name值

Excel按Empid分组取分组内第一个非空Name的实现方法

以下方法默认原始数据表头在第1行,A列为Empid,B列为Name,数据范围为A2:B8,你可根据自身实际数据调整公式内的区域参数。

方法1:Excel 365/2021及以上版本(动态数组公式,操作最简单)

  • 提取不重复Empid:在空白单元格(比如D2)输入公式 =UNIQUE(A2:A8),按下回车后会自动溢出所有不重复的Empid值
  • 匹配第一个非空Name:在E2(D2右侧单元格)输入公式 =XLOOKUP(1,(A$2:A$8=D2)*(B$2:B$8<>""),B$2:B$8,""),按下回车后自动溢出所有分组对应的Name结果

方法2:Excel 2019及以下旧版本

  1. 提取不重复Empid:
    • 选中A列,点击「数据」选项卡→「高级筛选」
    • 勾选「将筛选结果复制到其他位置」,列表区域选择A1:A8,条件区域留空,复制到选择D1,勾选「选择不重复的记录」,点击确定即可得到所有去重后的Empid
  2. 匹配第一个非空Name:
    • 在E2单元格输入数组公式 =INDEX(B:B,MIN(IF((A$2:A$8=D2)*(B$2:B$8<>""),ROW($2:$8),99999)))&""
    • 按下Ctrl+Shift+Enter三键组合结束数组公式输入,下拉公式到所有Empid行即可

方法3:Power Query法(适合大数据量批量处理,数据更新后可一键刷新结果)

  • 选中原始数据区域,点击「数据」选项卡→「从表格/区域」,将数据导入Power Query编辑器
  • 选中Name列,右键选择「替换值」,将空值替换为null
  • 选中Empid列,点击「分组依据」,分组方式选Empid,新列名自定义为temp,操作选择「所有行」,点击确定
  • 点击「添加列」→「自定义列」,输入自定义列公式:=Table.First(Table.SelectRows([temp], each [Name] <> null))?[Name] ?? "",点击确定
  • 删除多余的temp列,调整列顺序后点击「关闭并上载」,即可得到最终结果

内容的提问来源于stack exchange,提问作者harnithu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:18:01