2017-04-15 4 views
0

Diese Frage bezieht sich auf das Zusammenfassen einer Datenbank in einer Google-Tabelle mit vorgegebenen Kriterien.Verwenden von ArrayFormula bei Abfrage mit mehreren und beschränkten Kriterien

Ich habe eine Datentabelle wie so in Bereich 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 

Ich habe auch eine Kriterientabelle, die die Grenzen für die Bereiche in der fusionierten Tabelle verwendet werden angibt. Die Kriterien-Tabelle sieht so aus.

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

Die Kriterientabelleist abgeleitet unabhängig aus der Datentabelle und wie Sie sehen können, nicht alle Werte in der Kriterientabelle sind in der Datentabelle. Wie kann ich ArrayFormula so verwenden, dass die Final Table die folgenden Daten enthält

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 

Hier sind die Ausgänge verwendeten Formeln die MAX, MIN, berechnen START VALUE und 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 
    ) 

Hier ist die link zum öffentlich bearbeitbaren Google Blatt mit den Beispieldaten darauf.

Wie kann ich ARRAYFORMULA in Google Tabellen verwenden, sodass die Details für einen sehr großen großen Datensatz autopopuliert werden.

Ich habe FILTER und VLOOKUP betrachtet. Aber da nicht alle Werte in der Kriterientabelle tatsächlich in der Datentabelle sind, habe ich Probleme, ihre Fähigkeit zu verwenden, gut mit ARRAYFORMULA zu arbeiten. Bitte erleuchte mich. Vielen Dank.

+0

Ich habe auch keinen Weg mit Arrayformula gefunden, jedoch können Sie bestehende Abfragen vereinfachen. Zum Beispiel kann max erhalten werden mit: = query (table1! $ A $ 1: $ B $ 8, "max (B) auswählen mit A> =" & table2! A2 & "und A <=" & table2! B2 & "Label max (B) '' ") –

Antwort

0

nicht genau das, was Sie wollen, aber sehr viel einfacher:

SO43427734 example

E1 bis F9 wird ArStart benannt und für ColumnC in:

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

Ausgang ist durch Pivot-Tabelle.

Verwandte Themen