powerbi - 上月分类值 Power BI
问题描述
我有一张看起来像这样的桌子。我正在尝试找到一种方法来查找每个帐户的状态更改,例如,如果当前月份的状态是注销但上个月是活动的,则标签应该是新注销的。在 Power BI 中可行吗?我找到了 PREVIOUSMONTH 但它只处理度量,而不是像我这样的分类值。
解决方案
这似乎是一个微不足道的问题,但我发现它在 PowerBI 中不容易解决。在展示我解决此问题的方法之前,我建议您在将数据加载到 PowerBI(即在数据源中)之前解决它。
如果这是不可能的,这是你应该做的:
(推荐)创建 T-1 数据列 == 列,其中有上一个日期进行比较(对你来说,它的上个月或日期):
T-1 date =
VAR __acc_id = TABLE[account_id]
VAR __date = TABLE[date]
RETURN
CALCULATE(MAX(TABLE[date]),FILTER(ALL(TABLE), TABLE[account_id] = __acc_id && TABLE[date] < __date))
计算的过滤器部分“返回”表的一部分,它具有与当前行相同的 account_id 和小于当前行的日期。之后,我们只需选择最大日期,它应该是前一个。这样,我们可以找到每个帐户的最大先前日期。
如果您知道上一个日期是什么,请随时跳过此步骤。
在创建状态列本身之前,我将创建一个计算列,其中包含以前的状态。该列应计算如下:
t-1 status=
var __acc_id = TABLE[account_id]
var tdate = TABLE[T-1 date] //CREATED IN PREVIOUS STEP OR YOUR PREVIOUS DATE METRIC(LIKE dateadd or previousmonth function)
return
CALCULATE(firstnonblank(TABLE[status]), FILTER(ALL(TABLE), TABLE[account_id]=__acc_id && table[date] = tdate))`
有了之前的状态列,我们现在有了当前和之前的状态列,这应该足以用简单的 if 语句正确标记“行”。计算出的列公式可能如下所示:
status_label = if(TABLE[status] == "Written off" && TABLE[t-1 status] == "active", "newly written off", "something else").
如果简单的 IF 还不够,请查看switch 语句
这一系列步骤应该可以解决您的问题,但我不得不承认,它的性能效率不高。最好在 PowerQuery 中解决它,但遗憾的是,我不知道如何解决。任何使用 PowerQuery 的解决方案都将受到高度赞赏。
推荐阅读
- ios - 启动屏幕中的 Gif
- java - 在 Java 中从 XPath 填充 XML 文件
- regex - 在 OSX 和 GNU 中使用带有“find”的数字修剪文件名
- python - Django 在模型中保存 JSON 数据时出错
- jquery - 删除所有大于所选选项的选项
- javascript - 如何将两个内容html的总和放入jQuery脚本中
- php - 为什么我的 png 文件以 pdf 格式更新到数据库中以及如何更正?
- css - 平滑地向文本添加渐变不起作用?
- ios - 带有 Fastlane 翻译插件的 iOS 本地化
- api - 如何将图片保存到 API 以与 Expo 原生反应?