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

如何在Google Sheets中将多列数据转为带类型列的三元组行

最简实现方法(Google Sheets 转三元组行数据)

这事儿其实用Google Sheets自带功能或者简单数组公式就能轻松搞定,给你两个最简方案,按需选择:

方案一:用原生逆透视(Unpivot)功能(手动操作,无公式)

这是最直观的一次性转换方法:

  • 选中整个原始数据区域(包括表头Entity A B C和下面的两行数据)
  • 点击顶部菜单栏的「数据」→「数据透视表和图表」→「逆透视列」
  • 在弹出的设置窗口里:
    • 把「Entity」添加到保留列(这列作为每个三元组的第一个值,保持不动)
    • 把「A」「B」「C」都添加到逆透视列(这些列会被拆分成Type和Value字段)
  • 点击「确定」,直接就能生成你要的三元组格式!默认表头是「Entity」「属性」「值」,双击表头就能改成「Type」和「Value」。

方案二:用数组公式(动态更新,数据变动自动同步)

如果需要原始数据更新后结果自动同步,就用这个公式。找个空白单元格(比如E1)输入:

=QUERY(FLATTEN(ARRAYFORMULA(A2:A3&"|"&B1:C1&"|"&B2:C3)),"SELECT SPLIT(Col1,'|') WHERE Col1 IS NOT NULL LABEL SPLIT(Col1,'|') 'Entity','Type','Value'")

公式简单解释:

  1. ARRAYFORMULA(A2:A3&"|"&B1:C1&"|"&B2:C3):把每一组「Entity+列名+数值」用竖线|拼接成字符串,生成二维数组
  2. FLATTEN:把二维数组转成一维列表,让每一组拼接后的字符串单独占一行
  3. QUERY:拆分竖线分隔的内容、过滤空值,最后给拆分后的三列设置自定义表头

如果你的数据行数/列数会变动,把公式里的固定范围改成动态范围即可,比如把A2:A3改成A2:A,B1:C1改成B1:1,B2:C3改成B2:2,这样新增行或列都会自动纳入转换。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:26:30