【问题标题】:Subtracting measure value from each row of a table in Microsoft Power BI从 Microsoft Power BI 中表的每一行中减去度量值
【发布时间】:2019-08-05 13:54:34
【问题描述】:

我在 Power BI 中为月和年创建了两个切片器。这些采用月份和年份值,并作为回报生成日期。

例如。 2019 年 5 月和 2019 年的月份在测量公式的帮助下生成 01/05/2019:

MyFilterDate = DATE(SELECTEDVALUE(ListoY[Year]),SELECTEDVALUE(ListoM[Month],0),"01")

我想用表中已经存在的日期减去这个日期。

当我尝试通过编写 DAX 从现有列中减去度量时遇到问题。

SUBVALNEW = DATEDIFF([MyFilterDate],Table[Date],DAY)

但是当我尝试这样做时,结果并不正确。事实上,当我尝试检查数据模型中 [MyFilterDate] 的值时,它与度量中计算的值不同。 (它看起来像是在 Table[Date] 中显示日期)

有没有办法从列中的日期中减去动态选择的日期?
任何帮助将不胜感激。

【问题讨论】:

  • 计算列不是动态计算。你不能指望他们改变像切片器这样的过滤器。他们运行一次并保存结果。唯一的动态结果是度量。您可能需要考虑您试图以何种可视化方式显示结果并在此基础上构建衡量标准。
  • @Nacho 我明白了,Power BI 中是否还有其他允许类似计算的功能?我的要求是用户选择月份和年份,我使用它动态生成日期(例如 1/05/2019)并计算包含大约 10 行的 Table[Date] 列之间的差异。我还需要将 DIFF 值与分配的类别(大于 10 等)进行比较,并为这些类别创建列。

标签: powerbi dax m


【解决方案1】:

我了解您的思维模式,但 power bi 的工作方式有点不同。动态度量不能与计算列一起使用。这样做时,不会设置度量值。

解决这个问题的方法是创建一个日期表:

Date = CALENDAR(MIN(CalendarWeek[Date]);MAX(CalendarWeek[Date]))

请勿将其连接到模型。从这里您可以制作 2 个切片器(基于日期表)。一个设置为月份,另一个设置为年份。

下一步是调整 MyFilterDate

MyFilterDate = DATE(SELECTEDVALUE('Date'[Date].[Year]);SELECTEDVALUE('Date'[Date].[MonthNo]);"01")

使 SUBVALNEW 成为度量(不能是列,因为它是动态的!)

SUBVALNEW = DATEDIFF([MyFilterDate];SELECTEDVALUE(CalendarWeek[Date]) ;DAY)

Ass the Meauer to your visual,见下面的最终结果)

【讨论】:

  • 谢谢,为了创建月份和年份的切片器,我必须从新创建的日期表中获取月份和年份,对吗?创建切片器并获取 MyFilterDate 值之后。我尝试创建一个 DAX 查询来获取 SUBVALNEW。我不希望 SUBVALNEW 成为衡量标准,因为我需要为表中的每一行计算它。如果我将其作为衡量标准,我将需要使用 Table[Date] 列的 MAX/MIN 来找出差异。有没有其他办法解决这个问题?
猜你喜欢
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多