You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

借助Excel functions/formula跨多Excel文件提取员工LTI数据并构建一对多结构的高效实现方法咨询

借助Excel functions/formula跨多Excel文件提取员工LTI数据并构建一对多结构的高效实现方法咨询

嘿,太懂你这种要跨文件整合员工LTI数据还要调整一对多结构的需求了——之前帮公司HR处理过几百人的股权激励数据,给你几个亲测最快的实操方案,分你用的Excel版本选:

一、Excel 365/2021用户:动态数组公式一键搞定(最快)

如果你用的是带动态数组功能的新版本Excel,这绝对是最快的方式,不用手动拖拽复制:

  • 先把那两个存LTI数据的文件打开(避免引用路径出错,嫌麻烦的话也可以直接写完整文件路径,比如='D:\员工数据\LTI文件1.xlsx'!A:C,但要确保文件夹和文件名以后不改动)
  • 假设主文件的A列是唯一的员工ID(用来匹配的核心标识),先在主文件的空白区域(比如E1单元格)把两个LTI文件的数据合并成一个动态数组:
    =VSTACK('[LTI文件1.xlsx]Sheet1'!A:C, '[LTI文件2.xlsx]Sheet1'!A:C)
    这个公式会自动把两个文件的A到C列(假设是员工ID+LTI授予日期+金额这类核心字段)合并成一个大的数据集
  • 回到主文件的B2单元格,输入针对A2员工ID的筛选公式:
    =FILTER($E:$G, $E:$E=$A2, "无LTI数据")
    按下回车后,Excel会自动把该员工的所有LTI记录溢出到下面的单元格,完全不用手动拖拽,而且原LTI文件数据更新后,主文件的内容会自动同步

二、旧版Excel用户:经典数组公式组合

要是你用的是2019及以前的旧版本Excel(没有动态数组功能),就用这个经过无数人验证的经典一对多提取方法:

  • 先把两个LTI文件的所有数据复制到主文件的一个隐藏工作表(比如命名为「LTI合并表」),这样引用更稳定,不用一直开着其他文件
  • 假设「LTI合并表」的A列是员工ID,B、C列是LTI相关字段,主文件的A列可以先生成重复的员工ID(对应每条LTI记录),然后在B2输入数组公式:
    =IFERROR(INDEX('LTI合并表'!$B:$B, SMALL(IF('LTI合并表'!$A:$A=$A2, ROW('LTI合并表'!$A:$A)-MIN(ROW('LTI合并表'!$A:$A))+1), ROW(A1))), "无数据")
    输入完成后按 Ctrl+Shift+Enter 触发数组公式,然后下拉填充,就能依次提取该员工的第1、2、3...条LTI记录
  • 要是不会快速生成重复的员工ID,可以先在「LTI合并表」用COUNTIF(A:A, A2)统计每个员工的LTI条数,再用INDEX+SEQUENCE批量生成对应次数的员工ID

三、数据量大?用Power Query可视化批量处理(最省心)

如果你的LTI数据超过1000条,公式可能会有点卡,这时候用Power Query(2016及以后叫「获取数据」)是最省心的,不用写复杂公式:

  • 打开主文件,点击「数据」选项卡→「获取数据」→「从文件」→「从工作簿」,分别导入两个LTI文件的数据
  • 在Power Query编辑器里,用「追加查询」把两个LTI数据集合并成一个完整的LTI库
  • 再导入主文件的员工基础信息表,用「合并查询」功能,选择员工ID作为匹配键,连接类型选「左外连接」
  • 合并完成后,点击合并列旁边的展开按钮,选择「展开到新行」,这样直接就生成了每个员工对应所有LTI记录的一对多结构
  • 最后点击「关闭并上载」,把合并好的数据加载到主文件的工作表里,以后只要点「刷新」,原LTI文件的更新就会自动同步过来

几个避坑小提示

  • 所有文件的员工ID要完全统一:比如不能一个是EMP001一个是emp001,大小写、前后空格都要一致,不然匹配会出错,可提前用UPPER(A2)把所有员工ID转成统一格式
  • 用公式的时候尽量别整列引用(比如$A:$A),改成实际的数据源范围(比如$A$2:$A$1000),能大幅提升Excel的计算速度
  • 要是经常需要更新数据,优先选Power Query的方法,不用每次都调整公式,一劳永逸

火山引擎 最新活动