【问题标题】:Power BI: Use unrelated date table to create a measurePower BI:使用不相关的日期表创建度量
【发布时间】:2020-11-27 05:04:30
【问题描述】:

您好,我已经为此苦苦挣扎了一段时间,希望我没有错过之前的问题。我正在尝试根据 EOMONTH 日期计算我们拥有的车辆数量。我们定期买卖汽车,为了报告,我们需要知道我们在每个月底有多少辆汽车,报告是滚动的 12 个月。

我尝试创建与日期表日期的车辆购买日期的关系,但是当我创建度量时(用于计算已购买但尚未售出的车辆数量):

SalesBlank = 计算( 计数(车辆[MVANumber]), FILTER(Vehicles, Vehicles[purchasedate]

我只知道当月购买的车辆数量,没有销售日期 - 我并不感到惊讶,因为我与日期表的关系就是购买日期。

如何设置度量来查看日期表并使用以下逻辑过滤车辆表: 购买

任何帮助将不胜感激!! 谢谢, 马特

Sample Data and Desired Results

Relationships

【问题讨论】:

  • 你能从所有相关表中添加一些示例数据吗?然后,您可以添加他们的预期输出,以便清楚地了解。

标签: powerbi filtering


【解决方案1】:

如果我的理解正确,您希望在每个月底统计手头的车辆数量。这可以通过计算购买日期小于或等于所选月末的车辆数并减去销售日期小于或等于所选月末的车辆数来计算。

您可以在 Vehicle[PurchaseDate] 和 Date[Date] 之间创建活动关系。然后根据 Vehicles[SaleDate] 和 Date[Date] 创建一个非活动关系。

您可以使用类似这样的度量:

Inventory Count =
VAR MaxDate =
    MAX ( 'Date'[Date] )
VAR MinDate =
    CALCULATE ( MIN ( 'Date'[Date] ), ALL ( 'Date' ) )
VAR Purch =
    CALCULATE (
        COUNT ( 'Vehicles'[VehicleID] ),
        DATESBETWEEN ( 'Date'[Date], MinDate, MaxDate )
    )
VAR Sales =
    CALCULATE (
        COUNT ( 'Vehicles'[VehicleID] ),
        USERELATIONSHIP ( 'Date'[Date], Vehicles[Sale Date] ),
        DATESBETWEEN ( 'Date'[Date], MinDate, MaxDate )
    )
VAR MaxPurDt =
    CALCULATE ( MAX ( 'Vehicles'[Purchase Date] ), ALL ( 'Vehicles' ) )
VAR MaxSlDt =
    CALCULATE ( MAX ( 'Vehicles'[Sale Date] ), ALL ( 'Vehicles' ) )
RETURN
    IF (
        MIN ( 'Date'[Date] ) <= MaxPurDt
            || MIN ( 'Date'[Date] ) <= MaxSlDt,
        Purch - Sales
    )

此度量获取累计购买次数和累计销售次数,然后将它们相减。 IF 检查是为了避免累积总计传播超出 Vehicle 表中的最大日期。

我不知道如何解释您显示的仅 3 个月的预期结果。这将产生与您所拥有的答案相同的答案,但没有对表格应用过滤器,它从 2016 年 3 月 31 日(首次销售日期)开始。

编辑:按照您的想法,可能有一种更有效的方法,但目前它正在逃避我。

【讨论】:

  • 这背后的想法是合理的,我正在寻找什么,但我认为我无法完全解释我需要什么,这是我的错。我最终在 SQL 中创建了一个 SP,该 SP 在月底拉出手头的车辆,并结合查询以获得我需要的月数。这不是一个优雅的解决方案,但它确实有效。非常感谢你的帮助!该解决方案帮助我解决了我遇到的另一个问题! - 马特
猜你喜欢
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2023-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多