我正在尝试创建一个仪表板,该仪表板为记录在同一个工作簿中的单独工作表中的各种度量计算月到日期平均值。
这是仪表板组件之一的一个示例:

这是我正在填充数据的表的图片:

因此,为了填充到目前为止物流的平均月份,我尝试使用AVERAGEIF函数,如果‘月’列中的值等于该列中最后输入的值,我希望将‘物流’列中的值进行平均值。(我知道,理想情况下,您希望检查月份和年份,但由于该表的数据是从年初开始的,因此暂时没有必要)。
我尝试过许多answers listed in this question的排列,但是没有一个对我有用,我不知道为什么。
以下是我尝试过的一些不同版本:
=AVERAGEIF('Daily KPI w Rows'!B:B, 'Daily KPI w Rows'!K:K = LastColumnCell('Daily KPI w Rows'!K:K))
=AVERAGEIF('Daily KPI w Rows'!B:B, LastColumnCell('Daily KPI w Rows'!K:K))
=AVERAGEIF('Daily KPI w Rows'!B:B, LastColumnCell('Daily KPI w Rows'!K:K), 'Daily KPI w Rows'!B:B)
=AVERAGEIF('Daily KPI w Rows'!B:B, 'Daily KPI w Rows'!K:K = LastColumnCell('Daily KPI w Rows'!K:K), 'Daily KPI w Rows'!B:B)重要
LastColumnCell是我编写的一个VBA函数,它获取列中的最后一个值。
它使用以下代码:
代码:
Function LastColumnCell (arg As Range)
LastColumnCell = arg.End(xlDown)
End Function 因此,我们的想法是,如果11月是最近一个有数据的月份,那么如果“月”一栏中的值等于11,那么它将对“物流”中的值进行平均化。
我所有的AVERAGEIF函数的实现都得到了Div/#0错误消息,所以很明显,所有这些都没有评估为True,但我不知道为什么。
任何帮助都将不胜感激。
发布于 2016-11-08 18:11:25
我看不见你的照片,但如果我假设:
1.)列B包含指标2。)列K包含月份值。
...your公式应是:
=AVERAGEIF('Daily KPI w Rows'!K:K," LastColumnCell('Daily KPI w Rows'!K:K)",'Daily KPI w Rows'!B:B)发布于 2016-11-08 18:18:42
只需使用这个公式:
=AVERAGEIF('Daily KPI w Rows'!B:B,MAX('Daily KPI w Rows'!B:B),'Daily KPI w Rows'!A:A)在那里,MAX('Daily KPI w Rows'!B:B)将得到最后一个输入的月份数据。那么您就不需要使用VBA代码了。
https://stackoverflow.com/questions/40493478
复制相似问题