在PowerBI中是否有一种特定的方式可以有条件地在列中添加?
在PowerBI中是否有一种特定的方式可以有条件地在列中添加 样本数据:在PowerBI中是否有一种特定的方式可以有条件地在列中添加?,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,在PowerBI中是否有一种特定的方式可以有条件地在列中添加 样本数据: Lang|Book_Type|Number|Book_Type (groups) ------------------------ A | B1 | 2 | B1 ------------------------ B | B1 | 2 | B1 ------------------------ C | B1 | 3 | B1 -------------------
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
------------------------
所以,我想做的是,我想要一个第五列,其中对应于每一行,我有这种类型的书的总数,即,在第1、2和3行旁边,在第五列中,我想要:7(=2+2+3),在第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 ()
)
)
这是一个循环依赖关系的原因是,在SUMX的第一个参数中,您将调用整个表作为新列定义的一部分(包括您要添加的列…但您不能引用尚未创建的内容) 更好的方法可能是这样的
CALCULATE (
SUM ( Book_store[Number] ),
ALLEXCEPT ( Book_store, Book_store[Book_type (groups)] )
)
这告诉它对数字列求和,忽略除指定列以外的所有列。谢谢Alexis。它解决了这个问题。如果您能解释ALLEXCEPT的功能以及它在代码中的工作方式,那就太好了。我的最后一句话就是尝试这样做,但完整的解释更复杂,需要额外的阅读才能完全理解。移除通过“由计算导出”从行上下文生成的筛选器上下文,但指定的列(保留上下文的列)除外。