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

请求协助:Google Sheets中无脚本实现2D矩阵转带行列标题的1D输出

纯公式实现Google Sheets 2D矩阵转带标题的1D列表(无需脚本)

没问题!不用脚本完全能搞定这个需求,我给你分享一个高效的纯公式方案,哪怕数据量超过100条也能轻松处理:

核心思路

通过数组公式组合,把行标题、列标题、对应单元格数据绑定后压平成一维列表,再拆分回三列,自动匹配所有条目。

具体公式(以示例4*4矩阵为例)

假设你的表格结构是:

  • 行标题在 A2:A5(比如示例里的"行1"-"行4")
  • 列标题在 B1:E1(比如示例里的"列1"-"列4")
  • 数据区域在 B2:E5

直接在空白单元格(比如G1)输入以下公式:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A2:A5&"|"&B1:E1&"|"&B2:E5), "|"), "where Col3 is not null"))

公式拆解(帮你理解适配)

  • FLATTEN(...):把行标题、列标题、数据用|拼接成字符串,然后把整个2D区域压平成1D的长列表,相当于把每个单元格的"行标题|列标题|数据"都列出来
  • SPLIT(..., "|"):把每个字符串按|拆分成三列,分别对应行标题、列标题、数据
  • ARRAYFORMULA:让公式自动扩展到所有符合条件的行,不用手动下拉填充
  • QUERY(...):过滤掉数据为空的行,避免生成无效的空条目

适配你的实际数据

如果你的行标题是A2:A101(100条数据行),列标题是B1:X1,数据区域是B2:X101,只需要把公式里的区域替换成对应范围就行:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A2:A101&"|"&B1:X1&"|"&B2:X101), "|"), "where Col3 is not null"))

注意事项

  • 确保你用的分隔符(比如|)在所有标题和数据里都不存在,要是有冲突可以换成其他不常用符号,比如^或者~
  • 要是想调整列的显示顺序(比如先列标题再行标题),只要修改FLATTEN里的拼接顺序就行,比如:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(B1:E1&"|"&A2:A5&"|"&B2:E5), "|"), "where Col3 is not null"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:37:45