【问题标题】:Using ArrayFormula on Query with Multiple and Bounded Criteria在具有多个和有界条件的查询中使用 ArrayFormula
【发布时间】:2018-02-28 10:06:44
【问题描述】:

这个问题是关于使用预定标准在 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
    )

这是可公开编辑的谷歌表格的link,上面有示例数据。

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

我看过FILTERVLOOKUP。但由于并非 标准表 中的所有值实际上都在 数据表 中,因此我无法利用它们与 ARRAYFORMULA 一起工作的能力。请赐教。谢谢。

【问题讨论】:

  • 我也没有找到使用 arrayformula 的方法,但是您可以简化现有查询。例如 max 可以通过以下方式获得: =query(table1!$A$1:$B$8," select max(B) where A>="& table2!A2 &" and A

标签: google-sheets google-query-language


【解决方案1】:

不完全是您想要的,但要容易得多:

E1 到 F9 被命名为 ArStart 并用于 ColumnC in:

=ArrayFormula(vlookup(A2:A,ArStart,2))

按数据透视表输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多