Google sheets Google sheets Average函数计算不正确
我正在使用谷歌表格创建一个财务记录 我想做的是创建一个公式,其中考虑了我的数据范围中的3列。这三列是日期、单词和数字 公式的第一部分将检查日期是否为当前月份(不是30天内,而是当前月份)。第二部分将检查单词“Yes”是否出现在第二列中,如果这两个是真的,则对所有其他也完全为真的行取第3列的平均值 C列是日期 W列是单词 Y列是数字 我尝试了很多方法,第一种是使用平均IF函数,在这里我使用过滤器检查日期,然后在标准中使用Yes这个词。这导致了一个数字,尽管它是不正确的,因为公式首先收集了是和否的序列,一旦它有了序列,它就应用到第三列,但它是从我最早的条目(不是我当前的月份)开始的。下面是代码 所以我尝试了另一种方法。它使用了一个查询函数。尽管我一直在研究如何将一个日期的月份与当前的今日()月份进行比较。这不会给出任何结果,即使当前月份为8,日期月份也为8。我也在下面输入了这个代码Google sheets Google sheets Average函数计算不正确,google-sheets,filter,average,google-sheets-formula,array-formulas,Google Sheets,Filter,Average,Google Sheets Formula,Array Formulas,我正在使用谷歌表格创建一个财务记录 我想做的是创建一个公式,其中考虑了我的数据范围中的3列。这三列是日期、单词和数字 公式的第一部分将检查日期是否为当前月份(不是30天内,而是当前月份)。第二部分将检查单词“Yes”是否出现在第二列中,如果这两个是真的,则对所有其他也完全为真的行取第3列的平均值 C列是日期 W列是单词 Y列是数字 我尝试了很多方法,第一种是使用平均IF函数,在这里我使用过滤器检查日期,然后在标准中使用Yes这个词。这导致了一个数字,尽管它是不正确的,因为公式首先收集了是和否的序
=AVERAGEIF(filter(W8:W800,month(C8:C800)=month(today())),"Yes",Y8:Y800)
=query(query(A8:Z800,"select month(C)+1, W, Y where W ='Yes'",0),"select Col1, Col3, Col4 where Col1 ='"&month(today())&"'",1)
背景中解释的结果您的嵌套有点不正确。如果您使用的是
过滤器
,请使用普通的平均值
,而不是平均值
,并确保您抓住了要聚合的正确列。最后,别忘了用IFERROR
包装来处理您的空案例
=IFERROR(AVERAGE(FILTER(Y8:Y800, MONTH(C8:C800)=MONTH(TODAY()), W8:W800="Yes")), 0)
如果您有多个标准,则需要使用
AVERAGEIFS
而不是AVERAGEIF
=ARRAYFORMULA(AVERAGEIFS(C2:C, B2:B, "yes", MONTH(A2:A), MONTH(TODAY())))
哦,美女,我也尝试过平均值,但我的思路太短(很晚了),以至于我无法把它串在一起,并想“不,这不可能”。我需要集中精力思考它所扮演的角色,但这很好。谢谢凯特:)@bart.s
IFERROR
返回第一个参数的结果,除非该结果是错误的。如果是,则返回第二个参数(在本例中为0)。