Power Query M:计算某个子字符串出现的行数
Power Query M: Count in how many rows a certain substring occours
我在 Power BI 中有这种 table:
id
isPromoter
path
aaa-111-000
false
sqe-432-w14/2aq-4ec-t66/aaa-111-000/
sss-342-r34
true
a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/
hhy-e90-y7u
false
a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/hhy-e90-y7u/
...
...
...
因此,如您所见,第二个id包含在第二个和第三个路径中;这只有在用户是推广者时才会发生。
我想要另一个字段,它计算每个 id 在所有路径中包含的次数(除了它本身);所以如果用户不是推广者,它应该是 0,如果是,它应该是 >0。
id
isPromoter
path
children
aaa-111-000
false
sqe-432-w14/2aq-4ec-t66/aaa-111-000/
0
sss-342-r34
true
a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/
3
hhy-e90-y7u
false
a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/hhy-e90-y7u/
0
...
...
...
...
我知道有函数 Text.Contains([path],[id]) 但它只适用于当前行。我不知道如何对所有行进行计数
添加列...自定义列...将其命名为子项,使用公式
= List.Count(List.FindText(#"PriorStepNameHere"[path],[id]))-1
我在 Power BI 中有这种 table:
id | isPromoter | path |
---|---|---|
aaa-111-000 | false | sqe-432-w14/2aq-4ec-t66/aaa-111-000/ |
sss-342-r34 | true | a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/ |
hhy-e90-y7u | false | a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/hhy-e90-y7u/ |
... | ... | ... |
因此,如您所见,第二个id包含在第二个和第三个路径中;这只有在用户是推广者时才会发生。
我想要另一个字段,它计算每个 id 在所有路径中包含的次数(除了它本身);所以如果用户不是推广者,它应该是 0,如果是,它应该是 >0。
id | isPromoter | path | children |
---|---|---|---|
aaa-111-000 | false | sqe-432-w14/2aq-4ec-t66/aaa-111-000/ | 0 |
sss-342-r34 | true | a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/ | 3 |
hhy-e90-y7u | false | a3e-543-1sd/34d-245-svt/s3a-bnj-klo/sss-342-r34/hhy-e90-y7u/ | 0 |
... | ... | ... | ... |
我知道有函数 Text.Contains([path],[id]) 但它只适用于当前行。我不知道如何对所有行进行计数
添加列...自定义列...将其命名为子项,使用公式
= List.Count(List.FindText(#"PriorStepNameHere"[path],[id]))-1