PowerBI切片器美化
PowerBI切片器美化
PowerBI原生切片器很丑,但切片器可以做得精美好看,如下图:
原生切片器:

切片器美化后:

制作步骤如下:
第一步,新建表
日期 =VAR MinDate = DATE(2025, 1, 1) // Fixed minimum dateVAR MaxDate = DATE(2025, 12, 31) // Fixed maximum dateRETURNADDCOLUMNS(CALENDAR(MinDate, MaxDate),"Date Issued", [Date],"Year", YEAR([Date]),"Quarter Number", QUARTER([Date]),"Quarter", "Q" & QUARTER([Date]),"Month Number", MONTH([Date]),"Month", FORMAT([Date], "MMMM"),"Month (Short)", FORMAT([Date], "MMM"),"Week Number", WEEKNUM([Date], 2),"Day of Week", FORMAT([Date], "dddd"),"Day of Week (Short)", FORMAT([Date], "ddd"),"Day of Month", DAY([Date]), // New column"Month Year", FORMAT([Date], "MMMM yyyy"))
第二步,生成2个度量值
DateRange Filter =// 定义一个名为"DateRange Filter"的计算列或度量值IF (// IF函数用于条件判断SELECTEDVALUE ( '日期'[Date] ) <= TODAY() + 3&& SELECTEDVALUE ( '日期'[Date] ) >= TODAY() - 3,// 条件判断部分:// 1. 检查当前上下文中的日期值是否小于等于今天+3天// 2. 并且(&&)当前上下文中的日期值是否大于等于今天-3天// SELECTEDVALUE函数返回当前筛选上下文中指定列的唯一值// TODAY()函数返回当前日期1,// 如果条件为真,返回10// 如果条件为假,返回0)
DayOfMonth Label =// 定义一个名为"DayOfMonth Label"的计算列或度量值,用于生成日期标签VAR DayOfMonth =// 定义变量DayOfMonth,存储当前上下文中的月份中的日数SELECTEDVALUE ( '日期'[Day of Month] )// 获取当前筛选上下文中'日期'表的[Day of Month]列的唯一值RETURN// 开始返回结果部分IF (// 使用IF函数进行条件判断SELECTEDVALUE ( '日期'[Date] ) = TODAY (),// 判断条件:当前上下文中的日期是否等于系统当天日期// SELECTEDVALUE获取当前筛选上下文中'日期'表的[Date]列的唯一值// TODAY()函数返回当前系统日期DayOfMonth & UNICHAR ( 10 ) & "●",// 如果条件为真(当天日期):// 1. 显示月份中的日数(DayOfMonth)// 2. 添加换行符(UNICHAR(10)表示换行符)// 3. 添加圆点符号"●"作为标记DayOfMonth// 如果条件为假(非当天日期),只显示月份中的日数)
第三步
将date列置于按钮切片器的字段中,并将DateRange Filter度量值拖放在视觉对象筛选器中,并且值等于1,

第四步,
调整形状为圆角矩形,圆角为18

第五步
调整布局 为单行 ,卡,按钮数7,间距8

第六步,
修改默认值的状态,值为8,字体为Segoe UI,颜色深灰色,修改显示单位 自定义,设置代码格式 MMM,将空白显示为--


第七步,
将度量值DayOfMonth Label拖放到标签中,位置选择 高于值

第八步,
布局选择 上

此时的效果如下:

第九步,
修改按钮默认值状态,填充选择Default图像,图像匹配度选择 匹配度,透明度0%

此时效果如下:

第十步,
修改已选定状态的填充,背景图像选择Selected图像,图像匹配度选择 匹配度

第十一步,
修改悬停状态的填充,背景图像选择Hover图像,图像匹配度选择 匹配度

第十二步,
修改标签大小,加粗

第十三步,
修改视觉对象边框

效果如下:

