powerbi - 如何计算每月平均值,包括 Power BI 中没有记录的月份
问题描述
我正在尝试计算每个调查员的每月平均病例数。它可能超过一个季度、一年或多年,因此它需要响应我放入的视觉或表格上下文。基表具有案例(个人案例#)、调查员(人名)、分配日期(未显示),并从该日期、月份和年份列中提取以及 YearMonth 分类列。
我创建一个 caseCount 度量为
caseCount = COUNT('Table'[Case])
我尝试了几种不同的方法来计算所有月份的平均值(在本例中为 4)。因为 Mary 每个月都有病例,所以她的平均值是正确的 (1.75),但 Sam 使用的分母 = 3,因此计算不正确。(返回 1.3 而不是 1)。如何强制计算使用完整的月数。
附加说明:表中可能存在超出我想要的日期范围的情况,因此我尝试使用
Avg = CALCULATE(AVERAGE(caseCount), Table[Date] > #10/31/2019#)
我还使用 CALCULATE(DIVIDE(), [Date] > 10/31/2019 YearMonth 值在那里创建。
解决方案
这是因为评估上下文。
我将度量定义如下:
VAR _casecount = //count number of cases in the selected period, applied on the fact table
VAR _months = COUNTROWS(CALCULATETABLE(VALUES('Calendar'[Month]), ALLSELECTED('Calendar'))) //count number of months in the selected period
RETURN
_casecount/months
更新
我没有考虑涉及 2019 年 5 月和 2020 年 5 月的多年期情景。然后,让我们使用DATEDIFF重新构建解决方案:
VAR _casecount = //count number of cases in the selected period, applied on the fact table
VAR _firstCalendarDate = CALCULATE(MIN('Calendar'[Date], ALLSELECTED('Calendar'))
VAR _lastCalendarDate = CALCULATE(MAX('Calendar'[Date], ALLSELECTED('Calendar'))
VAR _months = DATEDIFF(_firstCalendarDate, _lastCalendarDate, MONTH)
RETURN
_casecount/months
推荐阅读
- javascript - 如何使用 onclick 将 html 中的元素数量相乘
- html - HTML aria-label 属性是否允许为空字符串?
- c# - C# 获取选定的 IGridDataRow 值桌面应用程序
- unity3d - 如何在 Unity3D 中创建雪球?
- javascript - 如何在嵌入式浏览器和网页端之间进行双向通信
- c# - 来自 Active Directory 的应用程序中的活动用户,并与表用户中的列电子邮件相关
- nginx - 使用 nginx 配置 gzip
- reactjs - Reactjs在点击重新加载按钮时重新加载当前路由,而不是整个应用程序
- android - Dagger2 创建具体实例的映射失败,“没有@Provides-annotate 就无法提供”
- mysql - Laravel Dependent Select Value = 0