我试图获得某些特定条目的平均值。我有两列:A-是索引列(例如从1到1000),B是值列。
我知道有一个AVERAGE功能,并且有一个AVERAGE IF功能,这可能会对我有所帮助,但我似乎无法按照我需要的方式工作。 我需要做的是获得列B中与条目A中的索引匹配的条目的平均值:3 +(3 * n)其中n> = 0.在这种情况下,我需要平均值列B中的值,其在A中的条目是3,6,9,12,15 ......
是否可以使用excel执行此操作,或者您认为编写程序以获取这些值会更好吗?
感谢您的提示!!
-Jordi
答案 0 :(得分:2)
您可以使用SUMPRODUCT
:
=SUMPRODUCT((MOD(A1:A1000,3)=0)*B1:B1000)/MAX(1,SUMPRODUCT(1*(MOD(A1:A1000,3)=0)))
<强>解释强>
MOD(A1,3)
仅在0
的格式为A1
3*n
MOD(A1:A1000,3)=0
为您提供了一系列真/假值{FALSE,FALSE,TRUE,FALSE,..}
False
会被投射到0
而TRUE
投射到1
当multipliybg为任意值时,(MOD(A1:A1000,3)=0)*B1:B1000
会返回B
列中的值数组1}}其中A
列中的对应值的格式为3*n
(否则为0
}:{0,0,12,0,..}
SUMPRODUCT((MOD(A1:A1000,3)=0)*B1:B1000)
为您提供了B
列SUMPRODUCT(1*(MOD(A1:A1000,3)=0))
为您提供3*n
列中A
格式的值数量最后一件事MAX(1,SUMPRODUCT(1*(MOD(A1:A1000,3)=0)))
,如果#DIV/0!
A
列中没有值,则会导致3*n
错误
<强> UPD:强>
一般情况下,对于规则11+3*n
,您可以使用MOD(A1:A1000-11,3)=0
答案 1 :(得分:2)
您可以使用具有AVERAGE功能的“数组公式”,例如
=AVERAGE(IF(MOD(A2:A100,3)=0,IF(A2:A100>0,B2:B100)))
使用 CTRL + SHIFT + ENTER确认
要根据您在simoco的答案中的评论进行修改,您可以使用此版本
=AVERAGE(IF(MOD(A2:A100-11,3)=0,IF(A2:A100-11>=0,B2:B100)))
平均为11,14,17,20等。