【问题标题】:How to select the last value of the day with DAX in Power BI如何在 Power BI 中使用 DAX 选择当天的最后一个值
【发布时间】:2020-07-22 23:21:23
【问题描述】:

我是 Power BI 的新手,遇到了一个问题。我的模型如下:

  • 日期维度
  • 测量事实

Date Dimension 中的日期列链接到 Measurement Fact 中的测量值

以下是示例数据:

注意:在编辑查询中,我已将测量的类型更改为仅日期。

我已经尝试了以下措施,但它没有按我想要的方式工作。它将汇总当天的所有值,但我想要的是当天的最后一个值:

day_fuel_consumption =
CALCULATE (
    SUM ( measurement[measurementvalue] ),
    FILTER (
        measurement,
        measurement[metername] = "C-FUEL"
     && measurement[measuredate] = MAX ( measurement[measuredate] )
    )
)

我的目标是获得 29242,即当天的最后一个值。请记住,measuredate 是日期字段而不是日期时间(我更改为日期字段,以便我的年份和月份过滤器可以正常工作)。我已经更改了编辑查询中的类型。

【问题讨论】:

标签: powerbi


【解决方案1】:

改变您的度量以使用变量可能是解决方案:

DFC = 
var maxDate = MAX(measurement[measuredate])

return
CALCULATE(
    SUM(measurement[measurementvalue]), 
    measurement[measuredate] = maxDate
)

但是,您应该保留measureDate 的日期时间格式。如果您不想看到时间戳,只需更改格式 I power bi。否则 power bi 将看到两个具有最大日期的值并将它们相加,而不是取最后一个。

【讨论】:

  • 嗨@OscarLar。感谢您的回复。认为我的测量值与我的 DateDimension 相关联。当格式为日期时间时,我的日期过滤器无法正常工作。我得到很多空白,当我选择年份和月份时,显示的值不正确
  • 然后在测量表中创建一个只有日期的新日期列。所以你有两个,一个日期时间和一个日期。因为如果您有两个值并且想要区分它们,您必须知道哪一个是最新的测量值。
【解决方案2】:

好吧,如果您想避免创建度量,可以将要过滤的字段拖到可视过滤器窗格中。单击您的视觉对象,然后滚动一点,您将看到我所指的部分。从那里,只需拖动您尝试过滤的字段在这种情况下,您的值。然后选择“前 N 个”。它将允许您根据另一个字段选择顶部(数字)或底部(数字)。奇怪的是,它确实允许您按最高价值做最高价值。当你大声说出来时,它没有意义,但它的工作原理都是一样的。 这将向您显示您尝试使用的任何值字段的最高值。作为额外的奖励,您可以即时显示您想要多少或多少。

就 DAX 而言,与其他可以帮助您的人相比,我恐怕有点 DAX 文盲。

【讨论】:

    【解决方案3】:

    我必须创建两个单独的措施,如下所示,才能按我的意愿工作:

    max_measurement_id_cf = CALCULATE(MAX(measurement[measurementid]), FILTER(measurement, measurement[metername] = "C-FUEL"))
    
    DFC = 
    var max_id_cf = [max_measurement_id_cf]
    return 
    CALCULATE(SUM(measurement[measurementvalue]), measurement[measurementid] = max_id_cf)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      相关资源
      最近更新 更多