无关联日期表时,如何在计算表中实现占比计算并移除日期过滤?
解决独立日期表的筛选移除问题
由于你的日期表和hr_data没有关联关系,ALLEXCEPT只能清除hr_data内部列的筛选,无法影响独立日期表的筛选。要移除日期筛选的影响,直接在CALCULATE的筛选参数中针对日期表清除筛选即可,具体有两种常用方式:
方式一:使用REMOVEFILTERS(推荐,语义更清晰)
REMOVEFILTERS是DAX中专门用于移除筛选的函数,直接指定日期表即可清除该表的所有筛选:
% of Total_HR = DIVIDE ( [Count of Active Employee], CALCULATE( [Count of Active Employee], ALLEXCEPT(hr_data, hr_data[team], hr_data[company], hr_data[employee_type], hr_data[gender], hr_data[grade], hr_data[total_experience], hr_data[education], hr_data[XP]), REMOVEFILTERS('日期表') ) )
如果只需要移除日期表中特定列(比如[Date]列)的筛选,可改为:
REMOVEFILTERS('日期表'[Date])
方式二:使用ALL
ALL函数同样可以清除指定表或列的筛选,在该场景下效果和REMOVEFILTERS一致:
% of Total_HR = DIVIDE ( [Count of Active Employee], CALCULATE( [Count of Active Employee], ALLEXCEPT(hr_data, hr_data[team], hr_data[company], hr_data[employee_type], hr_data[gender], hr_data[grade], hr_data[total_experience], hr_data[education], hr_data[XP]), ALL('日期表') ) )
核心逻辑是:你的占比计算需要保留hr_data中指定列的筛选,同时清除来自独立日期表的所有筛选,因此在CALCULATE中同时保留ALLEXCEPT规则和针对日期表的筛选清除即可。
内容的提问来源于stack exchange,提问作者Nicolas
相关产品推荐
相关产品推荐

