前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何应对极度刁钻的甲方:Power BI处理非结构化流数据集思路

如何应对极度刁钻的甲方:Power BI处理非结构化流数据集思路

作者头像
陈学谦
发布2021-12-27 15:15:20
1K0
发布2021-12-27 15:15:20
举报
文章被收录于专栏:学谦数据运营

本文提供了PowerBI处理非结构化数据的新思路,单张表构建多维度的复杂报告;

本文提供的方法配合流数据集可以实现无限刷新、实时更新的复杂报告;

甲方爸爸的要求

有这么一个场景:

甲方提供了一个带数据的PowerBI模型,只有一张表:

要求只有一个:

不允许对数据做任何修改,不允许新建表、新建列、修改数据格式、按列排序等操作,也不允许设置自动日期智能:

也就是说,对于这个模型,只能写度量值,然后在报告中呈现,不能有任何其他操作。要求最终呈现结果:

本来很简单的一个事,添加一个日期表,2分钟搞定,为啥要这么麻烦呢?

甲方嘛,咱也不敢说,咱也不敢问。

收人钱财替人消灾

很明显这个数据表跟我们之前接触的表很不同,因为它并不是结构化的。这张表单看前三列是结构化的销售记录表:

单看后5列也是结构化的日期表:

但是放在一起这是什么操作?

面对这么无理合情合理的要求,我们先拖个表看看情况吧:

嗨,连看也不用看,肯定不对,不能这么直接来筛选。

我们来拆解一下:

首先拖个年月序号:

数据表本质上是前三列,它一定不能被这个年月序号直接筛选,所以写度量值的时候一定要ALL掉。

后面的日期表中包含了所有销售日期,因此我们可以用日期列去匹配数据表的签单日期,从而获得每一天的销售额,然后相加就是本月的销售记录:

我们直接写度量值:

代码语言:javascript
复制
sales.month = 
//首先创建一个只包含日期列的表
var days_table=
ADDCOLUMNS(
    VALUES('Table'[日期ID]),
    "formate_day",
    FORMAT('Table'[日期ID],"yyyy-mm-dd")
)
//然后添加列,计算每一天的sales
//这里在VAR中又加了一个var,为了在虚拟表中计算匹配日的sales
var sales_day=
ADDCOLUMNS(
    days_table,
    "sales",
    var thisday=[formate_day] 
    return 
    CALCULATE(
        [sales],
        FILTER(
            ALL('Table'),
            FORMAT('Table'[签单时间],"yyyy-mm-dd")=thisday))
)
//累加求和
var sales_month=SUMX(sales_day,[sales])
return sales_month

拖入表中:

ok!

度量值其实并不是很难写。

只是我们很少会遇到这样的数据表,哪怕遇到这样的数据表,我们也不会遇到这样的要求。

那为什么学谦还要写这篇文章呢?

谁是甲方爸爸

正如昨天的文章中说的:

从Power Automate到Power BI实时流数据集:翻山越岭的问题解决

在流数据集中我们是没有办法对数据进行任何的修改,不允许新建表、新建列、修改数据格式、按列排序等操作,也不允许设置自动日期智能:

所以这个甲方爸爸正是:流数据集。

流数据集的优点非常强,在仪表板中能够实时显示数据,完全自动化刷新,可以解决大量的对于时间序列敏感的数据。

但是缺点也非常明显,那就是无法添加数据表获取信息以外的维度,尤其是绝大部分数据的日期同时包含了时间信息:

我们根本无法做到对于更大周期的比如日、周、月的数据分析与各种对比。

本文解决了这个问题。

无限刷新

甚至,我们继续往下想,一个拥有多张数据表、多张维度表的模型,我们完全可以将其合并为一张表,在不同列上显示。

然后通过以上的方式,构建出完全相同的模型。

不要忘了,这一切都是基于流数据集来实现。回想一下, 流数据集的优点:

实时更新!

自动刷新!

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

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

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

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

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