另一个公式中使用的单元格旁边的单元格的平均值
AVG of Cells Next to Cells used in Another Formula
我是第一次在这里提问,所以我希望我的回答是正确的。我正在帮我爸爸做一份 spreadsheet,但我在弄清楚如何做一个公式时遇到了问题。不知道是否可以用公式来完成,或者是否必须用宏来完成。
这是一个包含多场比赛的得分 sheet。每场比赛都有一个总分,分数旁边的单元格是 X 计数(红心数)。在同一行(K列)我计算前6个总分并取平均:
=AVERAGE(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}))
现在我需要取上面公式中使用的总分旁边的 X 计数的 AVG,并将解决方案放在 L 列中。
例如,如果该行中用于 AVG 分数的单元格是:
N15,Q15,T15,W15,Z15,AC15
那么需要用于 X 计数 AVG 的单元格将是:
O15,R15,U15,X15,AA15,AD15
这个结果会被放入L15
请帮忙。如果需要任何说明,请告诉我。
屏幕截图:
你可以试试这个不太优雅的解决方案:
=SUMPRODUCT(INDEX(N15:BK15,MATCH(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}),N15:BK15,0)+1))/6
在单元格 L15:M15(2 个单元格)中通过 Ctr+Shift+Enter 作为 数组公式 输入,看起来应该像这个:
{=SUMPRODUCT(INDEX(N15:BK15,MATCH(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}),N15:BK15,0)+1))/6}
加上大括号。
数字 6
等于您要返回的最高分数的数量。
现在,为什么是 2 个单元格 (L15:M15)。我无法让 SUMPRODUCT
评估 INDEX
的结果数组,所以我们必须在 2 个单元格中输入它。我认为这不是问题,因为在您的屏幕截图中,未使用 M 列。
注意:如果求值范围少于6项,会报错。用户 3964075 的观点也很好。它可能会也可能不会处理关系。
请尝试以下公式:
=SUMPRODUCT(O15:BM15,
--(MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0),
--(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>=
LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6))
)/6
它是如何工作的?
SUMPRODUCT
有 3 个参数 - 第一个是要求和的数组,接下来的 2 个参数 return 一个 0
和 1
的数组,只选择感兴趣的元素第一个数组。
MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0)
包含此部分是为了避免列出每个单元格。如果分数在输入范围的每三列中,我们可以计算相对于第一列的列数,并函数 MOD(column,3) returns: {1,0,0,1,0,0...}
。因此只有输入数组的每三列将包含在总和中。
(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>=
LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6)
这部分是决定最后的总和应该包括哪6个分数。最棘手的部分是决定如何处理关系。我的做法是采取:
- 如果两个分数相同,取大眼数多的那个
- 如果仍然平局,从第一列中取一个
这意味着我们计算的不是 N15
值:
N15+O15/10^3+COLUMN(N15)/10^6
根据您的示例数据,它的计算结果为:566.017014
。前三位小数是牛眼数,后三位是列数。
您可以使用相同的公式通过更改第一个参数来计算前 6 名得分的平均值:
=SUMPRODUCT(N15:BL15,
--(MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0),
--(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>=
LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6))
)/6
我是第一次在这里提问,所以我希望我的回答是正确的。我正在帮我爸爸做一份 spreadsheet,但我在弄清楚如何做一个公式时遇到了问题。不知道是否可以用公式来完成,或者是否必须用宏来完成。
这是一个包含多场比赛的得分 sheet。每场比赛都有一个总分,分数旁边的单元格是 X 计数(红心数)。在同一行(K列)我计算前6个总分并取平均:
=AVERAGE(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}))
现在我需要取上面公式中使用的总分旁边的 X 计数的 AVG,并将解决方案放在 L 列中。
例如,如果该行中用于 AVG 分数的单元格是:
N15,Q15,T15,W15,Z15,AC15
那么需要用于 X 计数 AVG 的单元格将是:
O15,R15,U15,X15,AA15,AD15
这个结果会被放入L15
请帮忙。如果需要任何说明,请告诉我。
屏幕截图:
你可以试试这个不太优雅的解决方案:
=SUMPRODUCT(INDEX(N15:BK15,MATCH(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}),N15:BK15,0)+1))/6
在单元格 L15:M15(2 个单元格)中通过 Ctr+Shift+Enter 作为 数组公式 输入,看起来应该像这个:
{=SUMPRODUCT(INDEX(N15:BK15,MATCH(LARGE((N15,Q15,T15,W15,Z15,AC15,AF15,AI15,AL15,AO15,AR15,AU15,AX15,BA15,BD15,BG15,BJ15),{1,2,3,4,5,6}),N15:BK15,0)+1))/6}
加上大括号。
数字 6
等于您要返回的最高分数的数量。
现在,为什么是 2 个单元格 (L15:M15)。我无法让 SUMPRODUCT
评估 INDEX
的结果数组,所以我们必须在 2 个单元格中输入它。我认为这不是问题,因为在您的屏幕截图中,未使用 M 列。
注意:如果求值范围少于6项,会报错。用户 3964075 的观点也很好。它可能会也可能不会处理关系。
请尝试以下公式:
=SUMPRODUCT(O15:BM15,
--(MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0),
--(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>=
LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6))
)/6
它是如何工作的?
SUMPRODUCT
有 3 个参数 - 第一个是要求和的数组,接下来的 2 个参数 return 一个 0
和 1
的数组,只选择感兴趣的元素第一个数组。
MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0)
包含此部分是为了避免列出每个单元格。如果分数在输入范围的每三列中,我们可以计算相对于第一列的列数,并函数 MOD(column,3) returns: {1,0,0,1,0,0...}
。因此只有输入数组的每三列将包含在总和中。
(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>= LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6)
这部分是决定最后的总和应该包括哪6个分数。最棘手的部分是决定如何处理关系。我的做法是采取:
- 如果两个分数相同,取大眼数多的那个
- 如果仍然平局,从第一列中取一个
这意味着我们计算的不是 N15
值:
N15+O15/10^3+COLUMN(N15)/10^6
根据您的示例数据,它的计算结果为:566.017014
。前三位小数是牛眼数,后三位是列数。
您可以使用相同的公式通过更改第一个参数来计算前 6 名得分的平均值:
=SUMPRODUCT(N15:BL15,
--(MOD(COLUMN(N15:BL15)-COLUMN($N15),3)=0),
--(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6>=
LARGE(N15:BL15+O15:BM15/10^3+COLUMN(N15:BL15)/10^6,6))
)/6