前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BI技巧丨矩阵高亮

BI技巧丨矩阵高亮

原创
作者头像
PowerBI丨白茶
发布2022-08-12 21:24:34
5950
发布2022-08-12 21:24:34
举报
文章被收录于专栏:PowerBIPowerBI

BOSS:白茶,问你个事,PowerBI里面能不能让我选择哪个条件,对应的数据就在表格里面高亮显示啊? 白茶:(黑人问号?奇奇怪怪的需求)老板,PowerBI默认会进行突出显示的。 BOSS:你说的那个我知道,不是我要的那种,我要的就是某个Excel里面那种行列交叉高亮,知道不?白茶:哦~~了解,安排!

本期的需求,就是上面的内容,就像白茶说的那样,本身PowerBI是自带突出显示和交叉筛选的。但是往往我们接触的用户群体,还处于从Excel到BI的过渡期,习惯了Excel里面背景高亮的操作,那么在PowerBI中如何满足这个中国式报表需求呢?

先来看看本期的案例数据:

数据比较简单,共计三张表,一张产品表,一张分店信息表,一张销售事实表。

将其导入到PowerBI中,产品表和分店信息表分别导入两次,模型关系如下:

简单的拖个矩阵出来,效果如下:

编写如下基础指标:

代码语言:txt
复制
001.基础色 = 
"#e6b422"

白茶在这里选择将基础色单独写一个度量值,这样后续我们在调整颜色的时候,只需要更改这一个度量值即可。

代码语言:txt
复制
002.透明度 = 
"50"

这里面,白茶单独写了一个透明度指标,其实颜色的代码搭配透明度,是可以改变颜色显示的透明度的。

代码语言:txt
复制
003.单元格配色 = 
VAR GroupFilter =
    ISFILTERED ( Dim_ProductFilter[ProductGroup] )
VAR StoreFilter =
    ISFILTERED ( Dim_StoreFilter[StoreName] )
VAR GroupFilterList =
    VALUES ( Dim_ProductFilter[ProductGroup] )
VAR StoreFilterList =
    VALUES ( Dim_StoreFilter[StoreName] )
VAR SelectGroup =
    SELECTEDVALUE ( 'Dim_Product'[ProductGroup] )
VAR SelectStore =
    SELECTEDVALUE ( Dim_Store[StoreName] )
RETURN
    IF (
        AND ( GroupFilter, StoreFilter ),
        IF (
            AND ( SelectGroup IN GroupFilterList, SelectStore IN StoreFilterList ),
            [001.基础色]
        )
    )

编写如上代码,从代码逻辑上我们不难看出,其实配色的核心点有两个,一个是模型中多出来的产品表和分店表,这样可以绕过原有模型关系中的直接筛选;还有一个是判断维度是否被筛选。

将上述度量值,放到矩阵条件格式的背景设置中,我们来看一下效果:

从上面的效果,我们不难看出,其实对比Excel里面的高亮提示,我们这里的效果还是差一点的。在Excel中的效果是被选中的列,会有颜色提示,且行列交叉的地方颜色会加深。编辑如下代码:

代码语言:txt
复制
004.交叉配色 = 
VAR GroupFilter =
    ISFILTERED ( Dim_ProductFilter[ProductGroup] )
VAR StoreFilter =
    ISFILTERED ( Dim_StoreFilter[StoreName] )
VAR GroupFilterList =
    VALUES ( Dim_ProductFilter[ProductGroup] )
VAR StoreFilterList =
    VALUES ( Dim_StoreFilter[StoreName] )
VAR SelectGroup =
    SELECTEDVALUE ( 'Dim_Product'[ProductGroup] )
VAR SelectStore =
    SELECTEDVALUE ( Dim_Store[StoreName] )
RETURN
    IF (
        OR (
            AND ( GroupFilter, SelectGroup IN GroupFilterList ),
            AND ( StoreFilter, SelectStore IN StoreFilterList )
        ),
        IF (
            AND (
                AND ( GroupFilter, SelectGroup IN GroupFilterList ),
                AND ( StoreFilter, SelectStore IN StoreFilterList )
            ),
            [001.基础色],
            [001.基础色] & [002.透明度]
        )
    )

我们可以看到,之前的透明度,在这段代码中是有使用。我们将页面进行简单的美化,最终展示的效果如下:

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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