这是对之前教过的一个案例的优化:从文字数字混合的单元格中将所有数字提取出来,连续的数字放在同一个单元格中,不连续的分列放置。
但是要求分列后去除所有跳空单元格,也就是说,每一行的非空区域必须是连续的。
案例:
将下图 1 中 C 列的所有数字都提取出来,每一段连续的数字放在一个单元格中,提取出来的数字列之间不得有跳空单元格。
效果如下图 2 所示。
解决方案:
1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已上传至 Power Query。
3. 选择工具栏的“添加列”-->“自定义列”
4. 在弹出的对话框中输入以下公式 --> 点击“确定”:
Text.Remove([金额明细],{"一".."龥"})
公式的作用是删除单元格中的所有中文字符。
5. 删除“金额明细”列。
6. 选择工具栏的“添加列”-->“索引列”
7. 选中“自定义”列 --> 选择工具栏的“转换”-->“拆分列”-->“按分隔符”
8. 在弹出的对话框中点开“高级选项”--> 选择“行”--> 点击“确定”
9. 点击“自定义”旁边的箭头按钮 --> 在弹出的菜单中选择“删除空”
10. 选择“索引”列 --> 选择工具栏的“主页”-->“分组依据”
11. 在弹出的对话框中保留默认设置 --> 点击“确定”
12. 将公式中的 Table.RowCount(_), Int64.Type 替换成 Table.AddIndexColumn(_,"金额",1,1, Int64.Type)。
13. 点开“计数”旁边的扩展钮 --> 取消勾选“索引”和“使用原始列名作为前缀”--> 点击“确定”
14. 选中“金额”列 --> 选择工具栏的“转换”-->“透视列”
15. 在弹出的对话框的“值列”中选择“自定义”--> 点开“高级选项”--> 选择“不要聚合”--> 点击“确定”
16. 删除“索引”列。
17. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
18. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上载至的位置 --> 点击“加载”
右边绿色的表格较之前的版本就优化了,提取出来的数字去除了空单元格,尽可能靠左放。