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

求助:自动导出的Sheet CSV数据提取与结构化处理

解决Google Sheets提取结构化培训记录的方案

针对你遇到的原始数据拆分提取需求,结合Google Sheets的函数特性,推荐使用FLATTEN+ARRAYFORMULA+QUERY的组合公式来实现动态提取:

假设原始数据存放在名为「原始数据」的工作表中:

  • A列:姓名
  • B列:地点
  • C列及以后:各条培训记录(格式为「培训名称|交付日期|完成日期」)

在目标工作表的A2单元格输入以下公式:

=QUERY(FLATTEN(ARRAYFORMULA(IF(原始数据!C2:Z<>"",原始数据!A2:A&"|"&原始数据!B2:B&"|"&原始数据!C2:Z,""))), "SELECT SPLIT(Col1, '|') WHERE Col1 IS NOT NULL LABEL SPLIT(Col1, '|') ''", 0)

公式说明:

  1. ARRAYFORMULA:批量遍历原始数据的每一行,将姓名、地点与非空的培训记录用|拼接成完整字符串,跳过空的培训列
  2. FLATTEN:把所有拼接后的多行多列数据压缩成单列,实现“一行多培训”到“一行一培训”的转换
  3. QUERY:筛选掉空值,再将每个字符串按|拆分成姓名、地点、培训名称、交付日期、完成日期5列,同时去掉默认的表头标签

适配调整:

  • 如果原始数据的培训记录分隔符不是|,替换公式中所有的'|'为实际分隔符(比如逗号',')
  • 如果培训列的范围超出C:Z,修改为实际列范围(比如原始数据!C2:AA)
  • 若需调整输出列顺序,可修改QUERY的SELECT子句,例如:
    =QUERY(FLATTEN(ARRAYFORMULA(IF(原始数据!C2:Z<>"",原始数据!A2:A&"|"&原始数据!B2:B&"|"&原始数据!C2:Z,""))), "SELECT SPLIT(Col1, '|')[0], SPLIT(Col1, '|')[2], SPLIT(Col1, '|')[1], SPLIT(Col1, '|')[3], SPLIT(Col1, '|')[4] WHERE Col1 IS NOT NULL LABEL SPLIT(Col1, '|')[0] '', SPLIT(Col1, '|')[2] '', SPLIT(Col1, '|')[1] '', SPLIT(Col1, '|')[3] '', SPLIT(Col1, '|')[4] ''", 0)
    

这个公式支持自动识别原始数据新增的行,无需手动更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:52:37