答案1
以下是在示例表上执行此操作的方法:
- 在示例表中选择数据 (A2:B8)
- 按Ctrl+T将选择内容转换为表格
- 单击窗格数据,然后获取数据 > 从表/范围打开 Power Query 编辑器
- 单击标题选择第二列
- 单击窗格中的“变换”,然后拆分列 > 按分隔符
- 在对话框中,分隔符应该已被选择为
;
- 点击高级选项 > 拆分成 > 行
- 单击“确定”并预览更改
- 单击“关闭并加载”以使用新数据创建新的工作表。
- 除了最后一步之外,您还可以通过单击标题(用于第二个标题)来选择新数据,然后使用+Shift复制数据 。CtrlC
答案2
您也可以使用公式来执行此操作,只要要拆分的主题数量始终相同即可。在新工作表中,我们将展开源数据:
Sheet2!A1 中的标题(并复制到 B1):
=Sheet1!A1
在 A2 列的其余部分及以后:
=INDEX(Sheet1!$A$1:$A$10000, INT((ROW()-2)/3)+1)
在 B2 及以上级别:
=LET(theme, INDEX(Sheet1!$B$2:$B$10000, INT((ROW()-2)/3)+1), sep_1, FIND("; ", theme), sep_2, FIND("; ", theme, sep_1+1), sep_3, LEN(theme), CHOOSE(MOD(ROW()-2,3)+1, LEFT(theme, sep_1-1), MID(theme, sep_1+1, sep_2-sep_1-1), RIGHT(theme, sep_3-sep_2)))
如果您没有 LET(即 Excel 365),您可能必须将每个 LET 变量放在其自己的辅助列中,然后隐藏辅助列。
此公式的基本工作原理是使用 INT((ROW()-2)/3)+1 将行号 {2, 3, 4, 5, 6, 7...} 映射到 {1, 1, 1, 2, 2, 2...},以引用源行号国家和主题。然后使用 MOD(...) 将行 {2, 3, 4, 5, 6, 7...} 映射到 {1, 2, 3, 1, 2, 3...},以指示要提取列表中的哪个主题,即我们使用 CHOOSE(映射行 1、2 或 3,第一篇文字,第二篇文本,第三篇文本)。sep_# LET 变量帮助定位主题文本中的每个“;”分隔符。