【问题标题】:Excel average based on row and column values基于行和列值的 Excel 平均值
【发布时间】:2016-05-16 19:10:54
【问题描述】:

我想根据藻类(B 列)和月份(收集日期在第 1 行)计算藻类计数的平均值(和其他汇总统计数据)。前几列和几行如下所示:

row B---------------------C-------------------D

Algal Group -------6/5/2000 ----------7/5/2000-----etc.

Cyanobacteria-------5---------------------60        
Bacillariophyta-------2---------------------40      
Xanthophyta-------[blank]---------------30      

我尝试使用标准的 AVERAGEIFS 与 MONTH 论坛相结合,但我认为日期行将其丢弃。我还尝试在日期(即第 2 行)下方插入新行,第 1 行中包含收集日期的月份,并在 AVERAGEIFS 中引用该列。那也没有用。我也尝试将其作为数组公式输入。日期是 C1:DW1,藻类是 B2:B246。任何想法都非常感谢!

【问题讨论】:

  • 这些是用公式填充的吗?就像在空白中一样,它真的是空白没有公式吗?
  • 它们是硬输入的值,因此空白单元格确实是空白的。

标签: arrays excel if-statement average


【解决方案1】:

使用这样的数组公式:

=AVERAGE(IF((MONTH($C$1:$E$1)=H8)*($B$2:$B$4=H9)*($C$2:$E$4<>""),$C$2:$E$4))

作为一个数组,它需要用 Ctrl-Shift-Enter 来确认。如果操作正确,Excel 会在公式周围加上{}

【讨论】:

  • 效果很好。谢谢!您介意解释一下为什么需要在公式中使用星号 (*) 吗?
  • IF 语句的条件部分是三个 TRUE/FALSE 语句。 TRUE/FALSE 可以在数学中分别用作 1/0。所以我有一个包含三个变量的数学语句,如果有任何返回 false,它会解析为 0,因为任何乘以 0 的东西都是零,对于 IF 语句来说,它是 FALSE。因此,要返回 TRUE,所有三个都必须为 TRUE。 * 是乘法。因此,当这三个都为 TRUE 时,它解析为 1*1*1=1 并且 Excel 将 1 读取为 TRUE。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多