PowerBI切片器美化
PowerBI切片器美化
PowerBI原生切片器很丑,但切片器可以做得精美好看,如下图:
原生切片器:
切片器美化后:
制作步骤如下:
第一步,新建表
日期 =
VAR MinDate = DATE(2025, 1, 1) // Fixed minimum date
VAR MaxDate = DATE(2025, 12, 31) // Fixed maximum date
RETURN
ADDCOLUMNS(
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,
// 如果条件为真,返回1
0
// 如果条件为假,返回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图像,图像匹配度选择 匹配度
第十二步,
修改标签大小,加粗
第十三步,
修改视觉对象边框
效果如下: