Power BI:使用不相关的日期表创建度量

时间:2020-08-06 21:25:41

标签: powerbi filtering

嗨,我已经为此苦苦挣扎了一段时间,希望我不会错过上一个问题。我正在尝试根据EOMONTH日期对我们拥有的车辆进行计数。我们会定期买卖汽车,并且要进行报告,我们需要知道每个月底有多少辆汽车,并且该报告需要连续12个月。

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

SalesBlank = CALCULATE( COUNT(车辆[MVANumber]), FILTER(车辆,车辆[购买日期] <=相关('Date'[EOMONTH])&& ISBLANK(车辆[销售日期])))

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

如何设置一种措施来查看日期表并使用以下逻辑过滤车辆表: Purchaseate <= date [EOMONTH] && ISBLANK(salesdate)

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

Sample Data and Desired Results

Relationships

1 个答案:

答案 0 :(得分:0)

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

您可以在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检查是为了避免累计总数超出“车辆”表中的最大日期。

我不确定如何解释您仅用3个月就获得的预期效果。这将产生与您所拥有的答案相同的答案,但是没有在表格上应用过滤器,它的开始日期为2016年3月31日(首次销售日期)。

编辑:您可能正在考虑一种更有效的方法,但此刻正在使我逃脱。