Power BI 建模 —— 一些提示和小技巧

Power BI 建模 —— 一些提示和小技巧

很多时候,有一个简单的数据模型很好。你知道为什么吗?因为简单的模型可以让生活更轻松!就像下雨天有一把伞一样。

模型越简单,解释起来就越容易。最重要的是,你会更容易找到模型中的问题所在。

图源:Unsplash 摄影:Todd Diemer

本文将介绍一个经过简化的模型,以及一些可以帮你排除故障的工具。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
如何用Power BI 创建完美图表
数据科学必备技能:如何用Power BI做数据可视化
使用功效分析Power Analysis确定A/B测试的样本量
BI要死了吗?

我遇到了这个模型:

图片由作者提供

图中的Location A、B、C 和 D 包含了销售日期、销售人数和销售人员的数据。

数据库中还有一个日期表。

旁边还有两个维度表,可以区分高绩效群体和其他人。

当然, 你也可以运行类似的分析。但是你注意到每个事实表(地点 A、B、C 和 D)是如何分开的吗?

这就是问题所在——你需要创建 4 个不同的度量标准,用于计算指标。(你还必须创建销售地点 A、地点 B 等等的总和的度量)。这种方法效率不高的,而且很容易出错。

图上的维度表也存在问题,如果这些表是为了根据业绩来区分个人,那你可以把它们组合成主题或维表。

那要如何简化该模型?

我们可以通过组合事实表和维度表,简化该模型,如下所示。

 图片由作者提供

这样是不是就简单多了?

两大方法,教你合并表格

我们来谈谈合并数据表的两种方法—DAX 和 Power Query。

通过 DAX 将表附加在一起

我并不非常推荐这样做,但我还是在这里介绍一遍,因为这种方法最快——你不用将所有数据重新加载到模型中。

要在 DAX 中执行此操作,你可以使用 UNION 函数并将表附加在一起,将它与之前的维度表连接起来。

Combined_Sale_Tables = UNION(Table_A,Table_B,Table_C,Table_D)

现在,你不需要 4 种不同的度量来衡量销售额!你只需要一种度量标准。

更新后的模型如下:

图片由作者提供

这里有一个问题。

合并的事实表没有附带位置名称,因为它们一开始就不存在。

我们可以通过使用 SUMMARIZECOLUMNS 来解决这个问题。

 图片由作者提供

这样做的缺点是模型中会出现多个表。

当然,你可以选择隐藏它们,但看起来还是会很乱。其他用户也可能不知道为什么你要把这些附加在一起,除非你有单独说明。

最大的缺点是,如果列名和编号不相同,你可能需要进行其他操作。

通过 Power Query 将表附加在一起

现在,让我们使用Power Query中的 append 方法。

Power Query > Home > Append Queries

图片由作者提供

这样做的优点是,数据库的适应性更强;无论列标题是否存在问题、是否存在额外列,或数据格式是否问题,Power Query 都可以很好地处理这些问题。

缺点是速度慢,因为你需要将这些数据重新加载到模型中。如果你的模型很大,这可能会让人头疼。

DAX 和 Power Query 都是简化事实表的不错选择,但如果你赶时间的话,可以试试 DAX,如果你时间充裕,可以使用 Power Query。

但不论是哪种方法,得到更新后的模型都会一样。

图片由作者提供

让我们的生活更简单。

现在,让我们也来看几个非常有用的函数,让你的生活更轻松。

它们是 INTERSECT、EXCEPT 和 VALUES 函数。

通过带有 VALUES 的 EXCEPT 函数识别异常值

假设人力资源经理找到你说,“我这里有一份销售员工的名单,你能看看他们是否都卖出过东西么?”

表格如下:

图片由作者提供

现在,我们来看看如何使用 EXCEPT 和 VALUES ☺

Table_EXCEPTIONS = EXCEPT(Sale_Person_All,VALUES(Combined_Sale_Tables[Sales Person]))

VALUES 函数会在我们的 Combined_Sales_Tables 中创建一列唯一值(销售人员姓名),EXCEPT 会针对发送给我们的表创建left anti join。

结果如下:

图片由作者提供

通过此函数,我们可以找到三个没有卖出过产品的员工。

通过带 VALUES 的 INTERSECT 函数识别交集

同样,如果将刚刚的EXCEPT代码用 INTERSECT 替换,你可以在 HR 发送的表格中看到所有卖出过产品的人。

Table_INTERSECT = INTERSECT(Sale_Person_All,VALUES(Combined_Sale_Tables[Sales Person]))

结果如下:

图片由作者提供

总的来说,

建模——如果你看到多个事实表或维度表,可以试着合并这些表格。

检查表格 – 通过 EXCEPT 和 INTERSECT with VALUES ,查找表之间的差异。

数据建模非常有趣!

尽量让你的模型简单起来。你会对结果感到惊讶!

以上就是本文全部内容。希望你在数据旅程中一切顺利!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Peter Hui
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/power-bi-modelling-tips-and-tricks-9726e1d9085b