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

如何用公式在Google Sheets中将宽表转长表?含排序与空值忽略

在Google Sheets中将宽格式转长格式并分组排序的公式方法

核心公式

假设你的原始数据结构如下:

  • A列是分组名称(如团队、类别)
  • B列到D列是宽格式的名字/值列(包含空白单元格)
  • 数据从第2行开始(第1行为标题行)

在空白单元格(比如F2)输入以下公式,即可直接生成符合要求的长格式表格:

=SORT(FILTER(
  {
    FLATTEN(IF(B2:D<>"", A2:A, "")),
    FLATTEN(B2:D)
  },
  FLATTEN(B2:D)<>""
), 1, TRUE, 2, TRUE)

公式说明

  • FLATTEN(IF(B2:D<>"", A2:A, "")):为每个非空白值绑定对应分组,空白值则留空,再将结果转成纵向列
  • FLATTEN(B2:D):把宽格式的多列值全部转成纵向单列
  • FILTER(..., FLATTEN(B2:D)<>""):自动过滤掉所有空白值的行
  • SORT(..., 1, TRUE, 2, TRUE):先按**分组列(第1列)升序排序,再按值列(第2列)**字母升序排序,实现分组内的有序排列

适配调整

如果你的值列不止B-D列(比如延伸到Z列),只需把公式中的B2:D替换为实际的列范围(如B2:Z)即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:34:54