2017-04-15 54 views
0

此問題涉及使用預定標準在Google電子表格中彙總數據庫。在帶有多重和有界條件的查詢上使用ArrayFormula

我有一個數據表像這樣在範圍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 VALUE起始公式和END 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良好配合的能力。請賜教。謝謝。

+0

我還沒有找到與arrayformula的方式,但是你可以簡化你現有的查詢。例如max可以通過以下方式獲得:= query(table1!$ A $ 1:$ B $ 8,「select max(B)where A> =」&table2!A2&「and A <=」&table2!B2&「label最大(B)「'」) –

回答

0

不正是你想要的,但非常容易得多:

SO43427734 example

E1到F9命名爲ArStart和用於ColumnC:

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

輸出由數據透視表。