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

Google Sheets查找相同员工表头列自动提取非空值的公式实现问询

解决方案

通用自动适配公式(无需手动调整列范围)

直接在你要放置合并后员工工时的列第一行输入以下数组公式即可,以合并「Employee 1」的所有历史数据为例:

=ARRAYFORMULA(
  LET(
    // 配置参数:修改这里的员工姓名即可适配不同员工
    target_name, "Employee 1",
    // 定位所有表头为目标员工的列
    header_row, 1:1,
    target_cols, FILTER(COLUMN(header_row), header_row=target_name),
    // 按列序号从旧到新排序(如果需要从新到旧优先取最新值,把SORT的第二个参数改成-1)
    sorted_cols, SORT(target_cols, 1, TRUE),
    // 逐行遍历取第一个非空值
    result, BYROW(INDIRECT("A:"&MAX(sorted_cols)), LAMBDA(row,
      IF(INDEX(row, 1)="", "",  // 首列(一般是日期/序号)为空则跳过整行
        IFERROR(XLOOKUP(TRUE, INDEX(row, sorted_cols)<>"", INDEX(row, sorted_cols), ""))
      )
    )),
    // 输出表头+对应结果
    {"Employee 1 Hours"; IF(SEQUENCE(ROWS(result)-1), result)}
  )
)

功能说明

  • 自动搜索整个表头行所有匹配目标员工姓名的列,不需要手动指定BS、CT这类列范围,员工变动新增重复列后公式会自动识别
  • 可自定义取值优先级:如果要优先取最新生成的列的非空值,只需要把sorted_cols行的TRUE改成FALSE即可
  • 整列自动溢出计算结果,不需要手动下拉填充

场景适配调整

如果你的表头不是在第1行,把公式里的header_row, 1:1改成对应表头所在的行范围即可,比如表头在第2行就改成2:2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:30:00