有没有一种特定的方法可以有条件地在PowerBI的列中添加内容?

时间:2020-10-27 17:19:05

标签: powerbi dax powerbi-desktop

在PowerBI的列中是否有特定的条件添加条件?

样本数据:

Lang|Book_Type|Number|Book_Type (groups)
------------------------
A   |  B1     |  2   | B1
------------------------
B   |  B1     |  2   | B1
------------------------
C   |  B1     |  3   | B1
------------------------
A   |  B2     |  4   | B2
------------------------
B   |  B2     |  2   | B2
------------------------
A   |  B3     |  2   | B3
------------------------
A   |  B4     |  2   | B4
------------------------
B   |  B4     |  5   | B4
------------------------

所以,我想做的是,我想要第5列,其中与每一行相对应,我拥有该类型的图书总数,即第5列中的第1,2和3行,我想要:7(= 2 + 2 + 3),在第5列的第4行和第5行旁边,我想要:6(= 4 + 2)。我也尝试过分组,但仍然相同。有没有办法在DAX中做到这一点?我尝试了以下代码,但给出了循环依赖错误。

SUMX (
    'Book_store',
    IF (
         ( Book_store[Book_Type] = Book_store[Book_Type (groups)] ),
        CALCULATE ( SUM ( 'Book_store'[Number] ) ),
        BLANK ()
    )
)

1 个答案:

答案 0 :(得分:0)

这是循环依赖性的原因是,您要在SUMX的第一个参数(包括要添加的列...)中将整个表作为新列的定义的一部分来调用。引用您尚未创建的内容。

更好的方法可能是这样

CALCULATE (
    SUM ( Book_store[Number] ),
    ALLEXCEPT ( Book_store, Book_store[Book_type (groups)] )
)

这告诉它对Number列求和,而忽略除 所指定的所有列之外的所有列。