我有这个疑问->
A B
1 |p1 | a:10;b:20;c:30 |
2 |p2 | a:25;b:15;c:40 |
如何在不使用宏的情况下获取 A 列中的 p1 和 p2 直到其下一个值被拆分?
A B C
4 |p1 |a |10 |
5 |p1 |b |20 |
6 |p1 |c |30 |
7 |p2 |a |25 |
8 |p2 |b |15 |
9 |p2 |c |40 |
在A列中使用的表达式和值不是固定的,而是动态的。
答案1
我将使用 Power Query 插件来实现这一点。从 Excel 2016 开始,Power Query 内置于“获取和转换”部分下的数据功能区中。
Power Query 可以从现有的 Excel 表开始。我会从使用分号的 B 列拆分步骤开始。一个关键技巧是打开“按分隔符拆分列”页面上的“高级”部分,并为“要拆分成的列数”输入一个更大的数字。它将默认为您当前数据所需的最小值,例如 3。您可以输入更大的数字,例如 100,以满足未来的数据需求。
然后,我会选择 A 列并使用“取消透视列/取消透视其他列”命令将所有拆分的列合并为一列,并分布在多行上。最后,我会在生成的“值”列上再次使用“拆分”命令,使用冒号进行拆分。
查询结果可以以 Excel 表格的形式提供。
您可能需要添加几个步骤来删除不需要的列并重命名列。您无需编写任何宏或函数代码即可构建此功能 - 只需在 Power Query 窗口中单击即可。
我构建了一个可行的解决方案,您可以从我的 OneDrive 下载并尝试:
这是文件:Power Query 演示 - 动态拆分列并逆透视为行