Excel中按父子结构循环将单列批量数据转换为行列结构
需求描述
- 原始数据:Excel中A36至A17536单元格的单列数据,每18条为一组,第1条是父项,后续17条为该组的对应列值,当前单列格式不利于数据解读。
- 期望效果:将每组18条单列数据转换为一行,第1条作为该行首列(父项),第2-18条依次填充至该行后续列;自动识别第19条为下一组父项,循环处理完所有数据。
解决方案
方法一:Excel公式实现
假设从B36开始输出转换结果:
- 父项列(B列):在B36输入公式
=OFFSET($A$36,(ROW(A1)-1)*18,0),下拉填充直到出现空值。 - 对应列值(C到S列,共17列):在C36输入公式
=OFFSET($A$36,(ROW(A1)-1)*18+COLUMN(A1),0),向右填充至S列后,整体下拉填充完成所有数据转换。
提示:若原始数据起始单元格不是A36,需修改公式中的
$A$36;大数据量下公式计算可能有延迟。
方法二:Power Query(推荐,高效处理大数据)
- 选中A36至A17536的数据区域,点击「数据」选项卡 → 「从表格/区域」(取消勾选「我的表格有标题」,因为是无标题单列数据)。
- 在Power Query编辑器中,进入「转换」选项卡 → 「拆分列」→ 「按行数」。
- 在弹窗中输入「18」,选择「拆分为列」,点击确定。
- 此时数据已按每组18条拆分为行,可调整列名后,点击「关闭并上载」,将转换后的数据导入新工作表。
内容的提问来源于stack exchange,提问作者AhmAd YaseEn
相关产品推荐
相关产品推荐

