首页 > 解决方案 > 返回 Power BI 表中的最后一个值和倒数第二个值

问题描述

你好。

我正在掌握 PowerBI,需要一些指导来在表格中生成三个额外的列,这些列指示倒数第二个和最新的质量评级以及特定对象的评级变化。

我正在处理一个巨大的(和敏感的)数据集,但我有一个模拟示例,类似于:

在此处输入图像描述

我的要求很复杂。我想要的(见下图)是一个总结的表格:

  1. 产品 ID 的最新销售日期
  2. 最新质量评级
  3. 以前的质量评级
  4. 指示改进或降级的更改列

我尝试了在线论坛中的各种技术,以尝试获取最新的倒数第二个销售日期,包括 CALCULATE 和 MAX 函数的组合。我设法生成了一个列,显示每个 ID 的最新日期,但不显示实际值本身。我被困住了,我们将不胜感激。

在此处输入图像描述

标签: powerbi

解决方案


首先你需要定义你的质量水平,我为此做了一个简单的表格。 在此处输入图像描述

确保表中有关系 在此处输入图像描述

在 Sales 表中添加一个新列(Rating):

Rating = RELATED(Rating[Rate])

添加一个新的列(上一个销售日期),注意当没有上一个日期时,此列可以为空:

Previous Sales Date = 
var area = Sales[Area]
var prod_Id = Sales[Product ID]
var last_Date = Sales[Sales Date]
return CALCULATE(MAXX(Sales;Sales[Sales Date]);FILTER(Sales;Sales[Area] = area && Sales[Product ID] = prod_Id && Sales[Sales Date] < last_Date))

添加一列(以前的评分),也可以为空

Previous Rating = 
var area = Sales[Area]
var prod_Id = Sales[Product ID]
var prev_Date = Sales[Previous Sales Date]
return LOOKUPVALUE(Sales[Rating];Sales[Area];area;Sales[Product ID] ;prod_Id; Sales[Sales Date] ;prev_Date)

最后一列将是(更改)列:

Change = IF(ISBLANK(Sales[Previous Rating]);"NA"; IF(Sales[Previous Rating] < Sales[Rating]; "Improvement";if(Sales[Previous Rating]> Sales[Rating];"Degraded";"Same")))

最终结果:

在此处输入图像描述

您可以根据自己的喜好过滤此表并制作所需的可见内容。


推荐阅读