如何计算何时由A过滤的字符串值也等于由B过滤的字符串值

时间:2019-06-03 11:44:38

标签: powerbi dax

我目前在Power BI中工作,当用A过滤的字符串也出现时,需要编写DAX代码来计算字符串值的数量。

我已经尝试过各种代码以及我想到的所有内容,但是我缺乏在DAX中比较值的经验,并且此刻还算不错。

例如
enter image description here

在看桌子时,我需要数数(与众不同)来自A的John,Adam和Julie也出现在B中,在这种情况下为3。

如果有人对我有任何想法或指示,我将很高兴!

2 个答案:

答案 0 :(得分:1)

假设您的表名是“数据”:

 Count of Common Names   =
    VAR A_Names =
        CALCULATETABLE ( VALUES ( Data[Name] ), Data[Filter] = "A" )
    VAR B_Names =
        CALCULATETABLE ( VALUES ( Data[Name] ), Data[Filter] = "B" )
    VAR Common_Names =
        INTERSECT ( A_Names, B_Names )
    RETURN
        COUNTROWS ( Common_Names )

工作原理: 首先,我们为过滤器A创建一个具有不同名称的表。 其次,我们对过滤器B执行相同的操作。 最后,通过查找它们的交集,我们可以找到两个表中都存在的名称。

编辑:

要计算通用名称的费用,请修改上述度量:

Cost of A given B =
VAR A_Names =
    CALCULATETABLE ( VALUES ( Data[Name] ), Data[Filter] = "A" )
VAR B_Names =
    CALCULATETABLE ( VALUES ( Data[Name] ), Data[Filter] = "B" )
VAR Common_Names =
    INTERSECT ( A_Names, B_Names )
RETURN
    CALCULATE ( SUM ( Data[Cost] ), Common_Names, Data[Filter] = "A" )

答案 1 :(得分:0)

这将计算具有多个不同值的不同名称的数量:

Names with Multiple Distinct Values = 
COUNTROWS ( 
    FILTER ( 
        SUMMARIZECOLUMNS ( 
            MyTable[Name], 
            "Distinct Values", 
            DISTINCTCOUNT ( MyTable[Values] )
        ),
        [Distinct Values] > 1
    )
)