Powerbi 如何计算月度平均值,包括Power BI中没有记录的月份

Powerbi 如何计算月度平均值,包括Power BI中没有记录的月份,powerbi,average,dax,Powerbi,Average,Dax,我试图计算每个调查员每月的平均病例数。它可能超过一个季度、一年或几年,因此它需要响应我将其放入的可视或表上下文。基本表包含案例(个别案例)、调查者(人名)、指定日期(未显示),以及从该日期提取的月份和年份列以及一个YearMonth分类列 我创建了一个案例计数度量 caseCount = COUNT('Table'[Case]) 我尝试了几种不同的方法来计算所有月份的平均值(在本例中为4)。因为玛丽每个月都有病例,所以她的平均值是正确的(1.75),但山姆使用的分母=3,因此计算不正确。(

我试图计算每个调查员每月的平均病例数。它可能超过一个季度、一年或几年,因此它需要响应我将其放入的可视或表上下文。基本表包含案例(个别案例)、调查者(人名)、指定日期(未显示),以及从该日期提取的月份和年份列以及一个YearMonth分类列

我创建了一个案例计数度量

caseCount = COUNT('Table'[Case])

我尝试了几种不同的方法来计算所有月份的平均值(在本例中为4)。因为玛丽每个月都有病例,所以她的平均值是正确的(1.75),但山姆使用的分母=3,因此计算不正确。(返回1.3而不是1)。如何强制计算使用完整的月数

补充说明: 表中可能有超出我想要的日期范围的案例,因此我尝试使用

Avg = CALCULATE(AVERAGE(caseCount), Table[Date] > #10/31/2019#)

我还尝试了使用CALCULATE(DIVIDE(),[Date]>2019年10月31日的几种变体。所有内容似乎都排除了调查人员未分配调查的月份。我还尝试连接到日期表,并使用其中创建的不同的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
更新 我没有考虑MAY-2019和MY-2020的多年期方案,然后,我们用:

重新构建解决方案。
这是因为评估上下文不同。
我将对该措施的定义如下:

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
更新 我没有考虑MAY-2019和MY-2020的多年期方案,然后,我们用:

重新构建解决方案。
我为VAR\u months尝试了建议的函数,但是COUNTROWS()函数只接受一个参数,因此它抛出了一个“参数太多”错误作为该上下文中的筛选器?我丢失了上下文修饰符。现在已修复。我仍然收到“参数太多”错误,因为COUNTROWS()接收的参数大于1。此外,如果我更改为计算(COUNTROWS(值('Calendar'[Month])),ALLSELECTED('Calendar'),'Calendar'[Date]>2014年12月31日),以限制COUNTROWS()对于一个论点,如果我停留在一年内,它是有效的。但是计算跨年的值只有12个月,所以它会膨胀平均值。所以我使用了值(YrMon),但它包括所有年份和YrMon值,而不是过滤到特定时期,因此低估了平均值。我感谢您主动审查答案以使其生效。我使用DATEDIFF重新定义了它,因为它似乎更适合您的场景。我尝试了建议的VAR_月函数,但COUNTROWS()函数只接受一个参数,因此它抛出了一个“参数太多”错误。这应该是在该上下文中以ALLSELECTED()作为筛选器的CALCULATE()包装中吗?我缺少上下文修饰符。现在已修复。我仍然收到一个“参数太多”错误,因为COUNTROWS()正在接收>1。此外,如果我更改为计算(COUNTROWS(值('Calendar'[Month]))、ALLSELECTED('Calendar')、'Calendar'[Date]>2014年12月31日),以将COUNTROWS()限制为一个参数,并且如果我停留在一年内,它会起作用。但计算年份时,只有12个月的值,因此它会放大平均值。因此我使用了值(YrMon),但它包含了所有年份和YrMon值,而不是过滤到特定的时期,因此低估了平均值。我感谢您主动审查答案以使其生效。我使用DATEDIFF对其进行了重新定义,因为对于您的场景来说,这似乎更简单。