Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi TOPN DAX函数提供所有项目,而不是前三名员工的姓名_Powerbi_Dax - Fatal编程技术网

Powerbi TOPN DAX函数提供所有项目,而不是前三名员工的姓名

Powerbi TOPN DAX函数提供所有项目,而不是前三名员工的姓名,powerbi,dax,Powerbi,Dax,我正在创建一个报告,其中有一个表,其中应显示前3名员工的姓名,并根据其销售金额显示相应的销售金额 当单独使用TOPN时,我以新表的形式获得正确的输出。但它没有销售金额。但是,当TOPN与CALCULATE函数一起使用时,我会得到所有员工的姓名,这是不正确的 工作正常但只有一列的DAX查询: TOPN(3,values(Sale[Employee Name]),CALCULATE(sum(Sale[Total Excluding Tax]))) DAX Measure不过滤前三行: TopN =

我正在创建一个报告,其中有一个表,其中应显示前3名员工的姓名,并根据其销售金额显示相应的销售金额

当单独使用TOPN时,我以新表的形式获得正确的输出。但它没有销售金额。但是,当TOPN与CALCULATE函数一起使用时,我会得到所有员工的姓名,这是不正确的

工作正常但只有一列的DAX查询:

TOPN(3,values(Sale[Employee Name]),CALCULATE(sum(Sale[Total Excluding Tax])))
DAX Measure不过滤前三行:

TopN = CALCULATE(SUM(Sale[Total Excluding Tax]),TOPN(3,values(Sale[Employee Name]),CALCULATE(sum(Sale[Total Excluding Tax]))))
我哪里出错了,请告诉我。两个查询的屏幕截图如下:


由于您的第一个DAX查询正在运行:

TOPN(3,values(Sale[Employee Name]),CALCULATE(sum(Sale[Total Excluding Tax])))
创建一个简单的求和度量值并将其作为另一列添加到TOPN旁边,怎么样

Sum sales = SUM(Sale[Total Excluding Tax])

它应该可以工作,因为您的TOPN计算正确。还是我误解了这个问题?

是的,你答对了。但是,如果单独使用TOPN,它会创建一个单独的表,我不想创建不必要的表。另外,我想知道为什么TOPN和calculate不起作用,我明白。我在创建计算表时主要使用TOPN,所以我恐怕不知道如何使用TOPN进行计算。我确实有一个小的解决办法,我以前用过。使用RANKX过滤结果如何?这样:
Top N 3 Total sales only=IF(RANKX(ALL(sales);[Sum X of Total sales])>4;[Sum X of Total sales])
这样你就可以有一个表,显示所有员工,但只对前三名的值求和。使用的SUMX度量值只是所需表和列的SUMX。感谢RankX方法的有效性。当在计算函数中使用TopN函数时,它会计算TopN数字,但不会填充列表。兰克斯负责这项工作。。谢谢你的时间和努力。。