PowerBI,用度量值实现表格销售统计(含合计)的简单示例

假设我们有产品表

和销售表

我们想实现下面的效果

表格显示每个产品的信息,以及单个产品的总销量

有一个切片器能筛选各个门店的产品销量

还有一个卡片图显示所筛选条件下,所有产品的总销量

实现方法:

1.我们新建一个计算表,把门店信息从销量表里提取出来,这里我不建议直接将数据表的的字段放入切片器,因为它是维度,实际开发中,维度表可能有多个字段,多个表联合组成,所以最好是用单独的表。

复制代码
门店表 = DISTINCT(SELECTCOLUMNS('销量表', "门店名" ,'销量表'[销售门店]))

2.将产品表和销量表关联起来

3.新建度量值,计算每个产品的销量

这里有两种做法,一种是先将销量表和门店表建立关联,度量值里就不需要显式FILTER了,写法如下:

复制代码
L1_销量 = SUMX(GROUPBY(
                  '销量表',
                  '销量表'[产品编码],
                  "SUM", SUMX(CURRENTGROUP(), '销量表'[销售量])
          ), [SUM])

另外一种方法,是数据表和维度表因为某些原因,无法建立显式的关系,我们就需要在度量值里做筛选,写法如下:

复制代码
L1_销量 = SUMX(GROUPBY(
                   FILTER('销量表', IF(ISFILTERED('门店表'[门店名]), '销量表'[销售门店] IN VALUES('门店表'[门店名]), TRUE())),
                  '销量表'[产品编码],
                  "SUM", SUMX(CURRENTGROUP(), '销量表'[销售量])
          ), [SUM])

解释:按照产品编码分组,计算每个产品编码的总销量(GROUPBY),然后再求总和(最外层的SUMX)。看到这,有小伙伴可能会问:表格里的销量不是按照每行的产品销量吗?你这里为什么求总和?不着急,后面会讲。

注意:

  1. ISFILTERED,用于判断切片器是否有选择筛选。如果有多个就 && IF(ISFILTERED...) && IF(ISFILTERED...) 。因为只要某一个不筛选,就会返回TRUE(),TRUE不会改变其他的筛选条件。

  2. IN VALUES,是用于切片器是多选的情况,如果是单选用SELECTEDVALUE()。

还需要注意一点的是,如果切片器显示的字段,和FILTER里需要筛选的字段不同,比如这里筛选的是门店编码而不是名称:

复制代码
IN VALUES( '门店表'[门店编码])

只要切片器用的字段和FILTER里的字段,都来自同一张表,或者是已经建立了关系的多张表,都是可以筛选的,不需要担心字段不同

设置千分位

4.新建表格,拖入字段:

在"列", 双击列名就可以修改名字

效果如下:

5.新建一个卡片图,把度量值 [L1_销量] 放入卡片。修改标注的方法,是直接在字段那里修改

效果:

度量值 [L1_销量],放入表格里,会自动根据关联关系逐行计算,每次只计算当前行的产品销量,放在表格外,就会计算所有的总和。

6.选择切片器进行筛选显示,完成:

相关推荐
瓶子xf3 小时前
PowerBI企业运营分析—全动态盈亏平衡分析
powerbi
过期的秋刀鱼!2 天前
04powerbi-度量值-筛选引擎CALCULATE()
powerbi
瓶子xf2 天前
微软PowerBI考试 PL300-Power BI 入门
powerbi
瓶子xf2 天前
使用PowerBI个人网关定时刷新数据
powerbi
瓶子xf3 天前
如何使用DAXStudio将PowerBI与Excel连接
powerbi
瓶子xf12 天前
Tabular Editor为PowerBI度量值建立一级或多级文件夹的两种方法
powerbi
瓶子xf16 天前
PowerBI企业运营分析——客户增减模型(时间区间客户状态分析)
powerbi
y52364816 天前
PowerBI 矩阵实现动态行内容(如前后销售数据)统计数据,以及过滤同时为0的数据
powerbi
瓶子xf16 天前
PowerBI企业运营分析——客户增减模型比率分析
powerbi
瓶子xf21 天前
如何替换PowerBI示例数据集
powerbi