excel平均if-function高级

时间:2014-03-03 14:51:39

标签: excel

我试图获得某些特定条目的平均值。我有两列:A-是索引列(例如从1到1000),B是值列。

我知道有一个AVERAGE功能,并且有一个AVERAGE IF功能,这可能会对我有所帮助,但我似乎无法按照我需要的方式工作。 我需要做的是获得列B中与条目A中的索引匹配的条目的平均值:3 +(3 * n)其中n> = 0.在这种情况下,我需要平均值列B中的值,其在A中的条目是3,6,9,12,15 ......

是否可以使用excel执行此操作,或者您认为编写程序以获取这些值会更好吗?

感谢您的提示!!

-Jordi

2 个答案:

答案 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会被投射到0TRUE投射到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等。