前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power BI做一个日历图表

Power BI做一个日历图表

作者头像
wujunmin
发布2021-11-26 11:12:20
2.1K0
发布2021-11-26 11:12:20
举报
文章被收录于专栏:wujunmin

日历可以放在报表一角,以便阅读者知晓当前日期在当月的位置。下图是一个示例,有星期,有日期,周末为灰色,如果是当天,则有红色背景色并且字体显示为白色。如何在Power BI中实现呢?

首先,新建一个日期表:

代码语言:javascript
复制
日期表 = 
ADDCOLUMNS(CALENDAR(DATE(2021,1,1),DATE(2021,12,31)),
"月",MONTH([Date]),
"日",DAY([Date]),
"星期",RIGHT(FORMAT([Date],"AAA"),1),
"星期值",WEEKDAY([Date],2),
"第几周",WEEKNUM([Date],2) 
)

表格显示为:

在Power BI中设置一个矩阵,字段如下:

去除总计,显示效果为:

为当前日期设置个背景色条件格式:

代码语言:javascript
复制
背景色 = IF(SELECTEDVALUE('日期表'[Date])=TODAY(),"Tomato",BLANK())

再设置字体颜色条件格式,周六日为灰色,当前日期为白色:

代码语言:javascript
复制
字体颜色 = IF(SELECTEDVALUE('日期表'[Date])=TODAY(),"White",IF(SELECTEDVALUE('日期表'[星期值])>=6,"Grey","Black")

拖动鼠标,隐藏第几周列:

效果为:

大体上上也能使用,如果背景色想要变成圆形,则不需要这么多度量值,只下面这个可以完成:

代码语言:javascript
复制
SVG日 = 
"data:image/svg+xml;utf8,"&"
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>"&
    IF(SELECTEDVALUE('日期表'[Date])=TODAY(),"<circle cx='50' cy='50' r='40' fill='Tomato'/>",BLANK())&"
<text x='50' y='50' font-size='30' text-anchor='middle' dominant-baseline='middle' fill='"&
        IF(SELECTEDVALUE('日期表'[Date])=TODAY(),"White",IF(SELECTEDVALUE('日期表'[星期值])>=6,"Grey","Black"))&        "'>"&SELECTEDVALUE('日期表'[日])&"
</text>
</svg> "

把SVG日设置为图像URL,矩阵中的值替换为该度量值,即显示为如下效果:

原理是将所有日期转换为SVG格式进行显示,看上去是数字,实际上是图片。Circle标签按照条件填充背景,text标签显示日期。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档