尝试在 DAX 中复制 COUNTIF 以计算数据透视表中的度量。我想知道 SUMX 和 CALCULATE 哪个效率更高?

问题描述 投票:0回答:1

我想计算“数据转储”表上的记录数,其中 [Stage] 列包含值“Enquiry”。我还想了解这些公式执行的差异。

我使用以下 DAX 公式来评估 - 哪个公式更有效?

=SUMX('Data Dump',MIN(SEARCH("Enquiry",'Data Dump'[Stage],,0),1))

=CALCULATE(COUNTROWS('Data Dump'),SEARCH("Enquiry",'Data Dump'[Stage],,0)>0)

=CALCULATE(COUNT('Data Dump'[Stage]),SEARCH("Enquiry",'Data Dump'[Stage],,0)>0)

=CALCULATE(COUNTROWS(FILTER('Data Dump',SEARCH("Enquiry",'Data Dump'[Stage],,0)>0)))

另外,如果我简单地将公式列添加到我的数据源表中,针对不同的条件(例如,值为“查询”、“管道”、“已转换”等),然后将其求和,是否会更有效获得总数?

以下是在 DAX Studio 中运行获得的结果,据我所知,性能相似。

excel performance excel-formula dax daxstudio
1个回答
1
投票

我会推荐以下其中一项:

CALCULATE (
    COUNTROWS ( 'Data Dump' ),
    CONTAINSSTRING ( 'Data Dump'[Stage], "Enquiry" )
)

COUNTROWS (
    FILTER (
        'Data Dump',
        CONTAINSSTRING ( 'Data Dump'[Stage], "Enquiry" )
    )
)

我希望它们的效率相似,但您需要实际测试才能确定。

© www.soinside.com 2019 - 2024. All rights reserved.