代码之家  ›  专栏  ›  技术社区  ›  Jack_Johnson

Dax返回不符合筛选器的行

  •  0
  • Jack_Johnson  · 技术社区  · 3 年前

    我有这样的代码,它应该查询一个Power BI数据集,并返回在过去一年中出现两次或两次以上的值。然而,它似乎正在返回去年内的值,然而,不会出现两次或两次以上。我已经通过将结果放入Excel并在Plant No字段中突出显示所有重复项来验证了这一点,并且有(大约2500个结果,可能有50个是重复项)

    EVALUATE
    CALCULATETABLE(
        SELECTCOLUMNS(
            'WO',
            "Raised Date", 'WO'[Raised Date],
            "Address", 'WO'[WO Address],
            "Plant No", 'WO'[Plant No],
            "Work Order", 'WO'[WO]
        ),
        (
            (COUNT('WO'[Plant No]) >= 2 &&
            'WO'[Raised Date] >= NOW() - 365 &&
            'WO'[Raised Date] <= NOW() + TIME(10, 0, 0))
           
        )
    )
    

    我还需要一些过滤器,但为了简单起见,我留下了这个。

    任何人都有任何想法,GPT似乎想在过滤器上进行“计数行”,但我不知道这将如何工作。

    TIA

    0 回复  |  直到 3 年前
        1
  •  0
  •   Lukas Hillesheim    3 年前

    存在将结果限制为计数>1基于EARLIER函数。可能会出现性能问题,因为必须逐行重新计算筛选器。最好在开始时创建一个表变量,其中包含一次植物编号及其计数,并逐行进行比较。另外,您可以将结果包装成SUMMARIZE,以便“删除”计数信息。

    FILTER(
        SELECTCOLUMNS(
            'Wo', 
            "Raised Date", 'WO'[Raised Date],
            "Address",     'WO'[WO Address],
            "Plant No",    'WO'[Plant No],
            "Work Order",  'WO'[WO]
            "Count Wo", 
                COUNTROWS(
                    FILTER(
                        ALL('Wo'), 
                        'WO'[Plant No] = EARLIER('WO'[Plant No])))), 
        [Count Wo] >= 1 
            && 'WO'[Raised Date] >= NOW() - 365 
            && 'WO'[Raised Date] <= NOW() + TIME(10, 0, 0))