【问题标题】:PowerBI DAX - Calculate, CountRows, RelatedTable, get TOP 1PowerBI DAX - 计算、CountRows、RelatedTable,获得 TOP 1
【发布时间】:2017-10-10 15:42:26
【问题描述】:

我有以下 PowerBI DAX Measure。由于数据结构的原因,它必须如此复杂。该措施运行良好,它返回给我每个客户的有效合同数量。这很好地显示在可视网格上,并为所有客户提供了所有有效合同的总数。

ActiveContracts = CALCULATE(COUNTROWS(RELATEDTABLE(Contracts)), 
FILTER(Contracts,
        (
        Contracts[StartDate] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
        Contracts[StartDate] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date]))
        )       
        ||
        (
        Contracts[End Date] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
        Contracts[End Date] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date]))
       )
       ||
       (
       Contracts[StartDate] <= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
       Contracts[End Date] >= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date]))
       )
   )     
)

但是,我只需要第一个结果,或者更简单地说,只需要有结果的事实(即客户的有效合同)。

我已经尝试了很多方法,我能得到的最接近的是在上述方法之上的另一种方法:

HasContract = CALCULATE(IF(ISBLANK([CCActiveContract]), 0, 1))

然后这适用于行级别,但是当我使用这个新度量对列进行总计时,它的总数为 1,而我想要计算所有具有有效合同的客户?

我错过了什么?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    由 Tom Martens 在 PowerBI 论坛 (link) 上使用:

    ContractPerCustomer = SUMX(Customer, IF([ActiveContracts] > 0, 1, 0))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多