Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何在ARRAYFORMULA中使用AVERAGEIFS_Google Sheets_Average_Google Sheets Formula_Array Formulas_Google Sheets Query - Fatal编程技术网

Google sheets 如何在ARRAYFORMULA中使用AVERAGEIFS

Google sheets 如何在ARRAYFORMULA中使用AVERAGEIFS,google-sheets,average,google-sheets-formula,array-formulas,google-sheets-query,Google Sheets,Average,Google Sheets Formula,Array Formulas,Google Sheets Query,我试着用数组中的平均数来表示公式。看看其他问题,我得出的结论是,不使用查询功能是不可能的 我的目的是在列共享同一ID时对其值求平均值 我认为它非常接近我所需要的,但我无法在我自己的工作表上复制和调整它的解决方案 我显示了我期望的结果,我通过拖动公式得到了它。我还审查了报告,但没有成功 非常感谢您的时间和努力。所以公式应该是 =ArrayFormula(iferror(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A))) 请注意,如果points列中有任何文本值,

我试着用数组中的平均数来表示公式。看看其他问题,我得出的结论是,不使用查询功能是不可能的

我的目的是在列共享同一ID时对其值求平均值

我认为它非常接近我所需要的,但我无法在我自己的工作表上复制和调整它的解决方案

我显示了我期望的结果,我通过拖动公式得到了它。我还审查了报告,但没有成功


非常感谢您的时间和努力。

所以公式应该是

=ArrayFormula(iferror(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)))
请注意,如果points列中有任何文本值,这仍然会返回一个结果,因为count将大于零-您可以使用

=ArrayFormula(if(isnumber(B2:B),(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)),""))

如果任意ID的行中混合了文本行和数字行,则返回的结果将小于平均值或平均值公式。这是该方法的一个限制。您不能在列B中添加额外的条件,因为列B必须包含一个数字,因为您需要countifs,而countifs对数组不友好。看起来仍然很奇怪,AFAIK countif和sumif是这个家族中唯一对数组友好的函数,而countif、sumif、averageif等则不是。

因此公式应该是

=ArrayFormula(iferror(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)))
请注意,如果points列中有任何文本值,这仍然会返回一个结果,因为count将大于零-您可以使用

=ArrayFormula(if(isnumber(B2:B),(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)),""))
如果任意ID的行中混合了文本行和数字行,则返回的结果将小于平均值或平均值公式。这是该方法的一个限制。您不能在列B中添加额外的条件,因为列B必须包含一个数字,因为您需要countifs,而countifs对数组不友好。看起来仍然很奇怪,AFAIK countif和sumif是该系列中唯一对数组友好的函数,而countif、sumif、averageif等则不是。您可以执行以下操作:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A; QUERY(A2:B; "select A,avg(B) group by A"); 2; )))
你可以做:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A; QUERY(A2:B; "select A,avg(B) group by A"); 2; )))

大约。您有多少行数据?超过50000…在您的工作表中,它只计算当前ID的平均值,从当前行开始,因此2019_1_JOHN从16.7更改为22.5更改为25-您能否确认这是您正在寻找的plz?Tom是对的,创建虚拟数据是一个错误,现在已修复。很抱歉…据我所知,你不能用averageif,但可以用sumif/countifaprox。您有多少行数据?超过50000…在您的工作表中,它只计算当前ID的平均值,从当前行开始,因此2019_1_JOHN从16.7更改为22.5更改为25-您能否确认这是您正在寻找的plz?Tom是对的,创建虚拟数据是一个错误,现在已修复。很抱歉……据我所知,你不能用averageif来做,但可以用sumif/CountIf来做。非常感谢!你的答案和汤姆的都很适合我。我给了你们投票,但我的名声似乎不够好。无论如何,再次感谢你抽出时间。非常感谢!你的答案和汤姆的都很适合我。我给了你们投票,但我的名声似乎不够好。无论如何,再次感谢你抽出时间。