前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >销售需求丨借贷记账法

销售需求丨借贷记账法

原创
作者头像
PowerBI丨白茶
修改2021-09-03 10:49:35
7300
修改2021-09-03 10:49:35
举报
文章被收录于专栏:PowerBI

本期呢,白茶决定分享一下一位星球小伙伴的提问。

(示例文件会放到知识星球中,小伙伴们可以搜索“PowerBI丨需求圈”,文章结尾处会有二维码。)

这个是本期的示例文件,将其导入到PowerBI中:

问题是什么?问题是当项目名称作为切片器的时候,选择其中的任意一项,比如说选择“现金”,那么呈现出来的结果需要是包含PS001的两项,就是“现金”与“银行”。

白茶在最开始思考的时候,脑子都蒙了,这是啥算法,是不是原始数据有问题啊,为什么是这个样子的?

后来小伙伴说了,这是典型的借贷记账法。因为一进一出,看起来非常的不方便,需要能对其中的项目进行筛选。原谅白茶,没学过财务算法,第一时间没反应过来。

那么问题弄清楚了, 咱们来思考一下如何处理。

筛选项目,选择其中一项,让同属于一张订单的其他项目也显示,涉及到的知识点有点多:

第一,一定要有一个可以随意筛选的维度,这样可以保证能让可视化插件不完全受切片器的影响。

第二,当选择其中一个项目的时候,需要筛选整个表,让整个表迭代选择相关的订单,取同一订单的其他项目。

第三,取值,利用维度对相关数据进行取值计算。

思路清楚了,开始编写代码。

首先是维度,提取一个维度可随意筛选。

编写代码:

代码语言:txt
复制
维度表 = 
VALUES ( '示例'[项目名称] )

利用VALUES函数的特性,去掉重复值,保留唯一值。这个表不需要与事实表建立联系。

结果如下:

编写如下代码:

代码语言:txt
复制
借贷记账法 = 
VAR HQ =
    CALCULATETABLE (
        VALUES ( '示例'[订单编号] ),
        '示例'[项目名称] = ALLSELECTED ( '维度表'[项目名称] )
    )
RETURN
    CALCULATE ( SUM ( '示例'[金额] ), HQ )

结果如下:

动态展示一下:

基本上达到小伙伴的需求,解释一下代码含义:

VALUES('示例'订单编号)在这里是为了去除重复值,提取一个不重复订单日期的表。

利用CALCULATETABLE表函数,对VALUES进行条件的限定,什么条件呢?

项目名称符合被ALLSELECTED函数筛选的项目。

通过CALCULATE对金额进行汇总以及上下文转换,提取原本行上下文中的金额值,转化为符合ALLSELECTED筛选条件的值,进行分类汇总。

最后,输出结果。

小伙伴们,GET了么?

(白茶:Biu~❤)

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档