DAX技术求助:创建度量值在矩阵中按个体展示选定个体总和
解决DAX度量值保留日期筛选并计算所选个体总和的问题
嘿,我完全懂你碰到的这个坑——ALLEXCEPT确实容易让人混淆,它会移除除了你明确指定列之外的所有筛选上下文,所以你之前没把日期列加进去的话,自然就会忽略日期筛选,算出全量总和了。咱们分两种场景来解决,对应你可能的真实需求:
场景1:每个个体行显示「该个体在所选日期内的总和」
如果你希望保留日期筛选,同时只移除其他无关列的筛选(比如地区、类别这类),那只需要把日期列也加入ALLEXCEPT的参数列表里就行:
个体日期内总和 = CALCULATE( SUM(Table1[数值]), ALLEXCEPT(Table1, Table1[个体], Table1[日期]) )
解释:
ALLEXCEPT(Table1, Table1[个体], Table1[日期]):意思是只保留个体列和日期列的筛选,其他所有列的筛选都会被清除。- 这样矩阵里每个个体行,会显示该个体在当前选中日期范围内的数值总和,完美保留日期筛选的效果。
场景2:每个个体行显示「所有选中个体在所选日期内的总和」
如果你的需求是:当用户选中多个个体时,矩阵里的每一行(不管是哪个个体)都显示这些选中个体的总总和,同时还要遵守日期筛选,那用ALLSELECTED会更合适:
所选个体总总和 = CALCULATE( SUM(Table1[数值]), ALLSELECTED(Table1[个体]) )
解释:
ALLSELECTED(Table1[个体]):它会获取用户当前全局选中的所有个体值(比如切片器、筛选器选的个体),同时保留其他所有筛选上下文(比如日期切片器的筛选)。- 这样不管矩阵行是哪个个体,都会显示所有选中个体在当前日期范围内的总和,完全符合你说的「为每个个体展示所选个体的数值总和」的需求。
举个例子:假设你选了个体A和B,日期选了2024年1月,那场景2的度量值会在A和B的行都显示A+B在2024年1月的总和,而场景1的度量值会在A行显示A的1月总和,B行显示B的1月总和。
内容的提问来源于stack exchange,提问作者vandelay
相关产品推荐
相关产品推荐

