Power BI考勤统计度量值求助:饼图展示出勤天数分组无结果
考勤报表饼图DAX度量值修复及正确公式
原度量值失效原因
你写的1-8 days度量值逻辑错误:DateRange是基于当前整个筛选上下文计算的全局日期差,而非每个候选人的个人出勤天数,导致后续筛选条件无法匹配单个候选人的实际出勤情况,最终饼图无数据显示。
正确的三类度量值公式
1. 出勤0天的候选人数量
出勤0天 = CALCULATE( DISTINCTCOUNT('YourTable'[Unique ID]), CALCULATE(COUNTROWS('YourTable'), 'YourTable'[Attendance] = "Yes") = 0 )
逻辑:统计所有没有任何出勤记录(Attendance = "Yes"的行数为0)的候选人数量。
2. 出勤1-8天的候选人数量
1-8天出勤 = VAR 候选人出勤天数 = ADDCOLUMNS( VALUES('YourTable'[Unique ID]), "@出勤天数", CALCULATE(COUNTROWS('YourTable'), 'YourTable'[Attendance] = "Yes") ) RETURN COUNTROWS(FILTER(候选人出勤天数, [@出勤天数] >= 1 && [@出勤天数] <= 8))
逻辑:先计算每个候选人的出勤记录数(即出勤天数),再筛选出天数在1到8之间的候选人并统计数量。
3. 出勤8-15天的候选人数量
8-15天出勤 = VAR 候选人出勤天数 = ADDCOLUMNS( VALUES('YourTable'[Unique ID]), "@出勤天数", CALCULATE(COUNTROWS('YourTable'), 'YourTable'[Attendance] = "Yes") ) RETURN COUNTROWS(FILTER(候选人出勤天数, [@出勤天数] > 8 && [@出勤天数] <= 15))
逻辑:与上一个度量类似,筛选出勤天数在9到15之间的候选人并统计数量(注意区间边界,避免重复统计8天的候选人)。
注意事项
- 确保
Unique ID字段是每个候选人的唯一标识,无重复值 - 确认
Attendance字段的出勤标记确实是"Yes"(DAX区分大小写,若实际值为小写"yes"需同步修改) - 若你的出勤天数是按日期跨度计算(而非每日记录数),可将
@出勤天数的计算替换为:CALCULATE(DATEDIFF(MIN('YourTable'[Date]), MAX('YourTable'[Date]), DAY), 'YourTable'[Attendance] = "Yes"),但需保证每个候选人的日期记录仅对应其出勤时段。
内容的提问来源于stack exchange,提问作者SUMAN NUTAKKI
相关产品推荐
相关产品推荐

