计算字符串列中的不同值

问题描述

我目前正在使用 Excel,我需要编写 DAX 代码来计算字符串列中的不同值。我在 Excel 中使用的公式是: IF(SUMPRODUCT(($BV$2:$BV2=BV2)*($BV$2:$BV2=BV2))>1;0;1);其中 BV 等于 TK 列。

我期望的结果在 distinct 列中:

TK Distinct 43470,yyy,uuu,20191 1 43470,20191 0 43470,yyw,yyyz,20191 0

我尝试了各种代码和我想到的所有东西,但我缺乏比较 DAX 中的值的经验,目前还有些不足。

有人可以帮忙吗? 非常感谢!

解决方法

您可以在PowerBi中复制sumproduct函数,虽然公式很难理解,如果有帮助,请接受答案:)

  1. 您需要在查询编辑器中创建一个 index column

  2. 应用以下公式即可:

     Duplicate check = IF( CALCULATE(COUNT('Sheet1 (2)'[tks]),FILTER(ALL('Sheet1 (2)'),'Sheet1 (2)'[Index] <= EARLIER('Sheet1 (2)'[Index])),'Sheet1 (2)'[tks]=EARLIER('Sheet1 (2)'[tks])))>1,1)
    

输出:

enter image description here