在具有多个有界标准的查询中使用ArrayFormula

时间:2017-04-15 15:17:57

标签: google-sheets google-query-language

此问题涉及使用预定标准在Google电子表格中汇总数据库。

在A1:B8

范围内,我有一个数据表
 A       B
-------------
310    890.00
210    875.00
100    849.00
80     845.00
70     842.00
61     842.00
60     841.00
53     825.50

我还有一个条件表,它指定了要在合并表中使用的范围的边界。标准表看起来像这样。

START    END
------------
210      310
95       200
69       90
53       65

标准表数据表独立,如您所见,并非标准表中的所有值都存在在数据表中。

如何使用ArrayFormula使最终表具有以下数据。

START    END    MAX    MIN       START VALUE    END VALUE
210      310    890    875       875            890
95       200    849    849       849            849
69       90     845    842       842            845
53       65     842    825.5     825.5          842

以下是用于计算MAXMINSTART VALUEEND VALUE

的起始公式
MAX FORMULA

    INDEX(
      query(
        { ARRAYFORMULA(VALUE(table1!$A$1:$A$8)),
          ARRAYFORMULA(VALUE(table1!$B$1:$B$8)) },
        " select max(Col2) 
          where Col1>="& VALUE(table2!A2) &" and Col1<=" & VALUE(table2!B2) & 
        " label max(Col2) ''"
      ),
      1,
      1
    )

MIN FORMULA

    INDEX(
      query(
        { ARRAYFORMULA(VALUE(table1!$A$1:$A$8)),
          ARRAYFORMULA(VALUE(table1!$B$1:$B$8)) },
        " select min(Col2) 
          where Col1>="& VALUE(table2!A2) &" and Col1<=" & VALUE(table2!B2) & 
        " label min(Col2) ''"
      ),
      1,
      1
    )

START VALUE FORMULA

    INDEX(
      query(
        { ARRAYFORMULA(VALUE(table1!$A$1:$A$8)),
          ARRAYFORMULA(VALUE(table1!$B$1:$B$8)) },
        " select Col2 
          where Col1>="& VALUE(table2!A2) &" and Col1<=" & VALUE(table2!B2) & 
        " order by Col1 asc"
      ),
      1,
      1
    )


END VALUE FORMULA

    INDEX(
      query(
        { ARRAYFORMULA(VALUE(table1!$A$1:$A$8)),
          ARRAYFORMULA(VALUE(table1!$B$1:$B$8)) },
        " select Col2 
          where Col1>="& VALUE(table2!A2) &" and Col1<=" & VALUE(table2!B2) & 
        " order by Col1 desc"
      ),
      1,
      1
    )

以下是可公开修改的Google工作表的link及其上的示例数据。

如何在Google表格中使用ARRAYFORMULA,以便为非常大型数据集自动填充详细信息。

我查看了FILTERVLOOKUP。但由于并非条件表中的所有值实际上都在数据表中,因此我无法利用它们与ARRAYFORMULA良好协作的能力。请赐教。感谢。

1 个答案:

答案 0 :(得分:0)

不完全是你想要的,但更容易:

SO43427734 example

E1到F9的名称为ArStart,用于:

中的ColumnC
=ArrayFormula(vlookup(A2:A,ArStart,2))

输出是透视表。