Power BI切片器自定义顺序
方法一:在数据源(Power Query)中创建排序列(推荐)
这是最规范、一劳永逸的方法。
在 Power Query 编辑器中添加自定义列:
假设你已有一个计算天数的列,名为
[天数]
。你需要先创建一个分组列,例如
天数分组
,其公式如下:
powerquery-m
if [天数] < 30 then "<30天" else if [天数] <= 60 then "30-60天" else ">60天"
现在你有了一个文本列,但它会按默认的“>60”、“<30”、“30-60”这种乱序排列。
创建排序辅助列:
在 Power Query 中再添加一个自定义列,命名为
排序顺序
或SortOrder
。根据
天数分组
列来赋予数字顺序:
powerquery-m
if [天数分组] = "<30天" then 1 else if [天数分组] = "30-60天" then 2 else 3
这样,
"<30天"
对应数字1
,"30-60天"
对应2
,">60天"
对应3
。
在数据模型中设置排序:
关闭并应用 Power Query,进入 Power BI 的报告视图。
在“数据”视图下,找到你刚刚创建的
天数分组
列。选中该列,然后转到工具栏中的“排序”功能区。
点击“按列排序”,然后在下拉菜单中选择你创建的数字列
排序顺序
。
创建切片器:
回到报告视图,从“可视化”窗格选择一个切片器。
将
天数分组
这个字段拖放到切片器上。现在你会发现,切片器的选项已经按照
1, 2, 3
的顺序,完美显示为「<30天」、「30-60天」、「>60天」了。
方法二:直接在数据模型中创建计算列(DAX)
如果你不想回Power Query修改,也可以用DAX在数据模型中直接创建。
创建分组列 (DAX):
新建一个计算列,公式如下:dax
天数分组 = SWITCH(TRUE(),'表'[天数] < 30, "<30天",'表'[天数] <= 60, "30-60天",">60天" )
创建排序列 (DAX):
再新建一个计算列,公式如下:dax
排序顺序 = SWITCH('表'[天数分组],"<30天", 1,"30-60天", 2,">60天", 3,99 // 其他情况(可选) )
设置按列排序:
后续步骤与方法一的第3、4步完全相同:选中天数分组
列,点击“按列排序”,选择排序顺序
列,然后用天数分组
列创建切片器。