我需要这里全能社区的帮助。
我这里有一个样本数据集。我试图对一些数据求和,然后取平均值。目标是得到我的预算的移动平均值,但只考虑已经发生的月份。
例如,我在电子表格中使用“支出”,但它可以是任何东西:汽油、家庭装修等。假设我在 1 月份花费 600 美元,那么我全年的平均支出就是 600 美元。但是假设我在 2 月份没有花费任何支出,那么我的平均支出就是 300 美元。我的问题是,我似乎只能获得所有月份的平均值,无论它们是否发生,所以目前是 2 月份,3 月至 12 月被计入平均值,因为它们都有空白数字,导致平均值不准确。我想要的是让它计算月份的平均值。
唯一需要注意的是,我在电子表格中使用了类别,在我的示例中,我有支出类别,然后是注释列,记录我花了多少钱。这是因为我会在年底计算类别平均值和总数,并且我想知道每一项是什么。
我尝试使用“”来区分空格和 0,但如果您尝试对“”进行平均,则会得到其文本,并且我会收到错误。请参见单元格 M5。M5 是我尝试获取 900 作为平均值的地方,因为 1 月和 2 月已经发生,但 12 月还没有。
答案1
可能的解决方案之一:
=SUM((MONTH(A1)<MONTH(TODAY()))*SUMIF(A3:A5,J4,C3:C5),
(MONTH(D1)<MONTH(TODAY()))*SUMIF(D3:D5,J4,F3:F5),
(MONTH(G1)<MONTH(TODAY()))*SUMIF(G3:G5,J4,G3:I5))/
((MONTH(A1)<MONTH(TODAY()))+(MONTH(D1)<MONTH(TODAY()))+
(MONTH(G1)<MONTH(TODAY())))
AVERAGE
当您的数据是计算出来的而不是单元格中的数据时,应避免使用函数。
如果您有新版本的 Excel (365),您也可以尝试使用较短的版本:
=LET(n, MATCH(TODAY(),VSTACK(A1,D1,G1)),
SUM(TAKE(VSTACK(SUMIF(A3:A5,J4,C3:C5),
SUMIF(D3:D5,J4,F3:F5),SUMIF(G3:G5,J4,G3:I5)),n))/n)