【问题标题】:Average ifs based on column and row in excel/google sheet基于 excel/google 表中的列和行的平均值
【发布时间】:2021-11-23 22:32:58
【问题描述】:

所以我有这张桌子:

我在 B11 中手动添加了 1.5,在 B12 中手动添加了 5,但是我应该键入什么公式来获取给定日期之前或之后的平均值?

【问题讨论】:

    标签: excel google-sheets excel-formula google-sheets-formula average


    【解决方案1】:

    尝试:

    =AVERAGE(FILTER(FILTER(B2:6, A2:A6=B9), B1:1<=B10))
    

    和:

    =AVERAGE(FILTER(FILTER(B2:6, A2:A6=B9), B1:1>B10))
    

    【讨论】:

      【解决方案2】:

      按照您当前的设置方式,您可以使用 INDEX/MATCH 返回您要查找的行,将其提供给 AVERAGEIFS,并将日期与第一行匹配:

      =averageifs(index(A1:E4, match(B9, A1:A4, 0)), A1:E1, "<=" &B10)
      =averageifs(index(A1:E4, match(B9, A1:A4, 0)), A1:E1, ">" &B10)
      

      在 Google 表格上查看此演示,但 Excel 的公式应该相同:

      https://docs.google.com/spreadsheets/d/1_e1sF8yrFZQuamnQNcRn5US71-csbdDGH9b-1ZrBlBk/edit?usp=sharing

      INDEX 接受三个参数,一个范围、一个行号和一个可选的列号。如果它只传递了一个一维范围(行或列)和一个数字,它会根据您给它的索引找到该范围内的第 n 个单元格。如果传递的是多维数组,则返回第 n 行。您还可以通过向其传递三个参数来返回一整列,但将第二个参数设为 false 或 0:INDEX(range, false, n)。

      MATCH 在一个范围内找到您要查找的值并返回该位置的数字。

      所以以这种方式使用 INDEX/MATCH 将返回该行,然后您可以照常使用 AVERAGEIFS。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-12
        相关资源
        最近更新 更多