制作数据透视表,如果行字段由数字和文本组合而成,在不添加辅助列的前提下,能否按单元格中的数字大小排序?
案例:
将下图 1 的数据表制作成数据透视表,要求姓名列必须按照名字前面的整段数字从小到大排序,效果如下图 2 所示。
解决方案:
1. 直接做透视表的话,只能按第一个数字排序。
当然可以加个辅助列,将数值提取出来,制作数据透视表的的时候按辅助列排序。但是这样的话就改变了数据表和数据透视表的构造。
最理想的结果就是不要额外增加辅助列,也要把事儿办了。
下面是正确的做法。
1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”:
表格已经上传至 Power Query。
3. 将“月份”列的格式修改为“文本”。
4. 在弹出的对话框中点击“替换当前转换”。
5. 选中“姓名”列 --> 右键单击 --> 在弹出的菜单中选择“重复列”
6. 选中最后一列 --> 选择任务栏的“主页”-->“拆分列”-->“按照从数字到非数字的转换”
7. 将拆分出来的数字列的格式修改为“整数”。
8. 删除最后一列。
9. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”
10. 在弹出的对话框中选择“仅创建连接”--> 勾选“将此数据添加到数据模型”--> 点击“加载”
* 注意:务必要勾选项下方的选项,成败的关键就在这里。
11. 在 Excel 中选择任务栏的 Power Pivot -->“管理”
* 如果任务栏中没有 Power Pivot,可以参考 将多个Excel数据表连接起来透视分析,是时候祭出 Power Pivot 了。
12. 选中“姓名”列 --> 选择任务栏的“主页”-->“按列排序”-->“按列排序”
13. 在右侧“依据”区域的下拉菜单中选择“姓名-复制.1”--> 点击“确定”
14. 选择任务栏的“主页”-->“数据透视表”
15. 选择“现有工作表”及所需上传至的位置 --> 点击“确定”
可以看到上方的区域中有两个表,一个是我们建模的表,另一个是原数据表。
16. 从建模的表中将“姓名”拖动到“行”区域,“业绩”拖动到“值”区域。
右侧的数据透视表,就很神奇地按整段数字升序排序了。