首页 > 解决方案 > 如何在 PoweBi 的时间序列中找到变化点

问题描述

我有一群人开始接受一种称为利益 A 的特定类型的社会福利,我很想知道该群体中的人在他们开始接受福利 A 之前可能立即获得了哪些(如果有的话)社会福利。

我的最佳结果将是一张表格,其中列出了在开始接受 BenefitA 之前分别获得 BenefitB、BenefitC 和未获得任何福利“BenefitNon”的人数。

我的数据组织为一个关系数据库,其中包含一个 Facttabel,其中包含我数据中每个人的 ID,以及连接到该 facttabel 的几个维度表。重要的是 DimDreamYdelse(显示收到的福利类型)、DimDreamTid(显示周和年)。这是原始数据的示例。

数据示例

我不知道如何在 PowerBi 中解决这个问题,因为我对这个程序相当陌生。任何建议都是最受欢迎的。

我试图在 SQL 中解决问题,但由于我需要将其作为运行报告的一部分,因此我需要在 PowerBi 中进行。然而,这段代码可能会为我想要做的事情提供一些背景信息。

使用 FLISDATA_Beskaeftigelse;选择 dbo.FactDream.DimDreamTid,dbo.FactDream.DimDreamBenefit,dbo.DimDreamTid.Aar,dbo.DimDreamTid.UgeIAar,dbo.DimDreamBenefit.Benefit,从 dbo.FactDream 内部加入 dbo.DimDreamDimDimDimDreamTid=dbo.FactDreamTream。 .DimDreamTidID INNER JOIN dbo.DimDreamYdelse ON dbo.FactDream.DimDreamBenefit = dbo.DimDreamYdelse.DimDreamBenefitID WHERE (dbo.DimDreamYdelse.Ydelse LIKE 'Benefit%') AND (dbo.DimDreamTid.Aar = '2019') ORDER BY Aar, dbo.DimDreamTid.UgeIAar

标签: powerbidaxpowerbi-desktopmeasure

解决方案


我建议使用 PowerQuery 将您的表格转换为更适合您分析的形式。如果表格的每一行都代表这样的福利计划的“变化”,事情会容易得多。

| Person ID | Benefit From | Benefit To |    Date    |
|-----------|--------------|------------|------------|
|        15 | BenefitNon   | BenefitA   | 2019-07-01 |
|        15 | BenefitA     | BenefitNon | 2019-12-01 |
|        17 | BenefitC     | BenefitA   | 2019-06-01 |
|        17 | BenefitA     | BenefitB   | 2019-08-01 |
|        17 | BenefitB     | BenefitA   | 2019-09-01 |
| ...

然后,您可以通过使用和COUNTROWS(BenefitChanges)过滤/切片来简单地计算数字。Benefit FromBenefit To


推荐阅读