如何在Google Sheets中正确堆叠多列演讲者相关数据?
解决Google Sheets多演讲者数据堆叠问题
问题根源分析
你之前的公式都没解决演讲者属性关联的核心问题:
- 第一个公式只拼接了姓名列,完全没同步对应的学位、城市等字段,不同演讲者的属性自然会错位。
- 第二个公式用
UNIQUE去重,完全偏离了“保留所有非空演讲者数据”的需求,而且同样没处理属性关联。 - 第三个公式只堆叠了姓名列,根本没带上演讲者的其他属性,等于没完成目标。
正确解决方案
假设每组演讲者的7个字段(姓名、学位、城市、州、邮箱、机构、简介)对应列如下:
- 第1位:N(姓名)→ T(简介)
- 第2位:X(姓名)→ AD(简介)
- 第3位:AH(姓名)→ AN(简介)
- 第4位:AR(姓名)→ AX(简介)
- 第5位:BD(姓名)→ BJ(简介)
- 第6位:BN(姓名)→ BT(简介)
在第二个工作表的A1单元格输入以下公式,直接生成完整的堆叠数据:
=QUERY( { FILTER('Program Submissions'!N2:T, LEN('Program Submissions'!N2:N)); FILTER('Program Submissions'!X2:AD, LEN('Program Submissions'!X2:X)); FILTER('Program Submissions'!AH2:AN, LEN('Program Submissions'!AH2:AH)); FILTER('Program Submissions'!AR2:AX, LEN('Program Submissions'!AR2:AR)); FILTER('Program Submissions'!BD2:BJ, LEN('Program Submissions'!BD2:BD)); FILTER('Program Submissions'!BN2:BT, LEN('Program Submissions'!BN2:BN)) }, "WHERE Col1 IS NOT NULL", 0 )
公式说明
- 每个
FILTER取出一组演讲者的完整7个字段,只保留姓名非空的行(过滤掉无演讲者的空行)。 - 用大括号
{}将6组数据垂直堆叠(分号;代表垂直堆叠,逗号代表水平堆叠)。 - 最后用
QUERY再次过滤空行,确保结果干净。
如果你的列位置和假设不同,只需要替换每个FILTER里的列范围即可,保证每组都是“姓名→简介”的7列连续范围。
内容的提问来源于stack exchange,提问作者Chzzy
相关产品推荐
相关产品推荐

