Wie kann ich eine Formel erstellen, um einen Bereich in Google Sheets zu generieren?

7
ARRAYFORMULA({1,2,3})

Erzeugt drei Zellen mit den Werten 1, 2, 3.

Etwas komplexer:

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4},false))

Verwendet die Spalten 1..4 aus dem vlookup und füllt die Spalten mit Daten aus diesen Zellen.

Was ich wirklich will ist:

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},false))

Ich frage mich, ob es eine einfache Möglichkeit gibt, die Parameter zu generieren, die als Zahlenfelder eingegeben werden, in diesem Fall die {1,2,3, ... 21}. Ich möchte also auf irgendeine Weise {1,2,3} oder {1,2,3,4,5} oder {1,2,3, ..., 125} generieren, ohne all diese Zahlen eingeben zu müssen sind in einer Reihenfolge.

Gibt es eine Formel wie:

SEQUENCE(1,21) that generates {1,2,3,4,5, ... , 19,20,21} or
SEQUENCE(1,1000) that generates {1,2,3,4,5, ... ,998,999,1000}

Damit ich letztendlich eintreten kann:

ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,SEQUENCE(1,21),false)) or
ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,SEQUENCE(1,1000),false))

Zur Verdeutlichung: Ich suche keine Skriptlösung. Ich versuche etwas zu finden, das in der Zelle funktioniert.

Tintenfisch
quelle
Es mag zunächst nicht intuitiv erscheinen, aber die meisten Menschen verwenden die Funktion =ROW() oder =COLUMN() , um so etwas zu erreichen. Wenn Sie = ROW()ohne Parameter verlassen, wird davon ausgegangen, dass es in jeder Zelle ausgewertet wird, in der es ausgedrückt wird (dasselbe mit =COLUMN()). Wenn Sie einen Bereich explizit als diesen Parameter auflisten, wie Ruben es in einem getan hat =ARRAYFORMULA, wird ein Array-Typ-Ergebnis mit den Zeilennummern des Bereichs zurückgegeben, den Sie explizit als Parameter verwendet haben. SO: `= ARRAYFORMULA (ROW (1:21)) gibt ein 1x21-Array von Zahlen zurück, die von 1 bis 21 zählen.
Xzila
Der Nachteil ist, dass Sie, wenn Sie eine sehr große Liste von Zahlen benötigen, so viele Zeilen benötigen, damit die Formel funktioniert. ABER wenn Sie eine kleine Liste benötigen, die zufällig nur hohe Zahlen enthält, können Sie dies zum Beispiel mit einem Zusatz begleiten=ArrayFormula(ROW(1:6)+1000)
Xzila

Antworten:

9

Kurze Antwort

Verwenden Sie so etwas wie ROW(A1:A21)

Erklärung

ROW (cell_reference) gibt die Zeilennummer der angegebenen Referenz zurück. Wenn die Referenz ein Bereich ist und sich die Funktion innerhalb einer ARRAYFORMULA befindet, wird ein Array einer Folge von Zahlen zurückgegeben, die mit der Zeilennummer beginnen, die der Startzellenreferenz entspricht, und mit der Zeilennummer enden, die der Endzellenreferenz entspricht.

Auf dieser Website gibt es mehrere Fragen und Antworten, die dies verwenden.

Rubén
quelle
1
Sie müssen nicht einmal die Spalte angeben: ROW(1:21)ist äquivalent.
Ninjakannon
@ Ninjakannon Oder um die Zeile anzugeben: ROW(A:A):)
Rubén
4

VERSUCHEN SIE STATT DIE FILTERFORMEL

Ich denke, Sie machen das schwieriger, als es sein muss. Die =Filter()Formel hier ist eine einfachere Lösung.

Ein Beispiel, das Sie aufgelistet haben, ist: =ARRAYFORMULA(VLOOKUP(A2,Sheet1!A:F,{1,2,3,4},false)) Dasselbe kann erreicht werden: =FILTER(Sheet1!A:F,Sheet1!A:A=A2)

Lassen Sie mich wissen, ob dies funktioniert oder ob Sie Fragen haben, und ich werde meine Antwort klarstellen.

Xzila
quelle