Google Sheets:如何用单个公式将1行多列数据转为多行3列?
解决方案:一行多列数据转每行3列的多行数据
Excel 场景快速实现
公式批量生成(适合中小量数据)
假设原始数据在A1:F1(即53、42、33、75、77、24),从A3开始输出结果:
- 在A3单元格输入公式:
=INDEX($A$1:$F$1,ROW(A1)*3-3+COLUMN(A1)) - 选中A3:C3,拖动填充柄向下拉,直到出现空白值,就能得到拆分后的每行3列数据;数据结束后下一行手动输入
etc即可。
Power Query 一键转换(适合超大量数据)
- 选中原始数据行,点击「数据」选项卡 → 「从表格/区域」(无标题就取消「我的表格有标题」勾选)
- 在Power Query编辑器中,选中所有列 → 「转换」→ 「逆透视列」(将所有列转为「属性」「值」两列)
- 添加自定义列,输入公式:
=INT(([行索引]-1)/3)+1(用于按每3个数据分组) - 选中「自定义」和「值」列 → 「转换」→ 「透视列」,值列选「值」,高级选项选「不要聚合」
- 关闭并上载到Excel,得到每行3列的结果,空白行可替换为
etc。
脚本批量处理(适合程序员/非Excel场景)
如果是处理文本格式的数值(比如CSV导出的一行数据),用Python实现的简单代码:
# 原始数据,按逗号分隔 raw_data = "53,42,33,75,77,24" nums = list(map(int, raw_data.split(','))) # 按每行3个拆分输出 for i in range(0, len(nums), 3): print('\t'.join(map(str, nums[i:i+3]))) # 输出后续标识 print("etc")
运行后输出:
53 42 33 75 77 24 etc
内容的提问来源于stack exchange,提问作者Darius Diana
相关产品推荐
相关产品推荐

