答案 0 :(得分:1)
我是从Power BI社区网站上的a post那里得到这个想法的,并根据您的具体情况进行了调整。
一般的想法是...
GENERATESERIES
创建一个列表,然后使用该系列的[Value]从原始字符串中提取字母。最终结果是一个看起来像这样的公式。
Letter Count =
VAR NameLength = LEN([Names])
VAR TempList = ADDCOLUMNS(
GENERATESERIES(1, NameLength, 1),
"Letter", MID([Names], [Value], 1)
)
VAR DeDupeList = SUMMARIZE(TempList, [Letter])
RETURN
COUNTROWS(DeDupeList)
这是结果。
答案 1 :(得分:0)
这太糟糕了,也许有人可以用更好的方式做到这一点,但是... DAX我不会这样做。
主要是因为我没有找到动态处理字符串大小的方法。因此,实际上这是硬编码的,最大字符串长度为5
Distinct Letters =
VAR v = SELECTEDVALUE('Table'[Names])
RETURN
IF( HASONEVALUE('Table'[Names]);
COUNTROWS(
SUMMARIZE(
FILTER({(MID(v;1;1));(MID(v;2;1));(MID(v;3;1));(MID(v;4;1));(MID(v;5;1))};[Value] <> BLANK()
);
[Value]
)
)
;
BLANK()
)