Powerbi可以计数一个单元格中特定文本的多次出现吗?

时间:2018-10-23 10:51:40

标签: count powerbi dax

我想找出的是,例如,让我们以下表为例:

 | Col 1 | Col 2   |
 |-------|---------|
 | ab    | 1       |
 | ab ab | 2       |
 | ac    | 1       |
 | ae    | 1       |
 | ae ae | 2       |
 | af    | 1       |

因此,基本上,如果单元格中有两次相同项目出现,我想在下一列中显示2。如果有3,则为3,依此类推。问题是,我大多数时候都在寻找特定的字符串。它是文本和数字字符串。

这在Power BI中可行吗?

1 个答案:

答案 0 :(得分:1)

假设您要计算出现在第一个空格之前的第一个非空格字符的出现次数,可以执行以下操作:

<os/availability.h>

我们来看一个例子,看看它是如何工作的。假设我们有一个字符串“ abc abc abc”。

Col 2 = VAR Trimmed = TRIM(Table2[Col 1]) VAR FirstSpace = SEARCH(" ", Trimmed, 1, LEN(Trimmed) + 1) VAR FirstString = LEFT(Trimmed, FirstSpace - 1) RETURN DIVIDE( LEN(Trimmed) - LEN(SUBSTITUTE(Trimmed, FirstString, "")), FirstSpace - 1 ) 函数会删除结尾处的所有多余空格,因此TRIM =“ abc abc abc”。

Trimmed搜索FirstSpace中的第一个空格。在这种情况下,Trimmed =4。(如果没有第一个空格,那么我们将FirstSpace定义为FirstSpace + 1的长度,以便下一部分可以正常工作。)

Trimmed使用FirstString查找第一个块。在这种情况下,FirstSpace =“ abc”。

最后,我们使用FirstString用一个空字符串(仅保留中间空格)替换每个SUBSTITUTE,并研究其如何改变FirstString的长度。我们知道Trimmed = 11和LEN(Trimmed) = 2,所以区别是我们通过替换删除了9个字符。我们知道这9个字符是LEN(" ")的n个副本“ abc”,并且我们知道FirstString的长度为FirstString-1 = 3。

因此,我们可以为n求解3n = 9,以获得n = 9/3 = 3,即“ abc”子字符串的计数。