加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,还可以提问交流。
报告中文本类型的字段默认会按照Unicode顺序排列,比如月份名称、星期几、区域名称等。
实际工作中,很多时候我们会按照自定义的顺序查看区域的数字(比如按方位东南西北),这样更符合用户的阅读习惯。
解决方案
在PowerBI中,可以用一个序号列为要排序的列的每个值标记一个数字序号,然后再让它按照序号列排序。
月份名称或者星期几来自于日期表,通常搭建日期表的时候,无论是用PowerQuery还是用DAX,都会把用于排序的列做出来,如MonthNumber或者DayOfWeek。这样,就可以使用按列排序功能为月份名称或者星期几排序了。区域名称也需要序号列,优先在数据源中自带排序列,如果没有权限修改数据源,或者想自主控制顺序,可以在PowerQuery中添加条件列。
操作步骤
STEP 1 点击菜单栏添加列下的条件列,在跳出的对话框中,新列名命名为大区序号,输入各个大区对应的序号。
STEP 2 将生成的大区序号列数据类型改为整数。
STEP 3 关闭并应用后,在数据窗格中选中大区列,点击菜单栏列工具下的按列排序,选择大区序号。
这样,按照大区升序排列的时候,就会按照自定义的排序方式排列了。
拓展
有时候维度表是从事实表中提取的,建议这个提取操作在PowerQuery中使用分组依据实现,不建议使用DAX的DISTINCT实现,因为用DAX生成的计算表虽然也能实现新建计算列进行条件赋值,但是点击按列排序的时候会报错,提示循环依赖。