2016-01-27 11 views
6

Ich verwende ArrayFormula(), um die Art, wie ich meine Berichte erstellen zu vereinfachen.So machen Sie eine Reihe n-mal in Google SpreadSheet

Statt einen Verweis in jeder Zelle zu schaffen, die mit (zB. =C1, =C2, =C3, =C4 in jeder Zelle, verwende ich nur =arrayformula(C1:C4) in einer einzigen Zelle. Es tut genau gleiche Arbeit, aber es ist viel einfacher, und es hält Dinge, die besser organisiert sind, weil ich nur in einer Zelle nach möglichen Fehlern suchen muss

Es funktioniert gut, wenn ich einen Bereich in einen anderen referenzieren muss wie die Werte von C1: C4 in den A1: A4 Bereich A1 Zelle Ich würde einfach schreiben =arrayformula(C1:C4) und es macht seine Magie

Es wird ein bisschen schwieriger, wenn Die Bereiche sind nicht gleich lang, aber trotzdem machbar. Wenn ich zum Beispiel zwei oder mehr Bereichsverbindungen C1: C4 über B1: B3 stapeln möchte, kann ich in Zelle A1 =arrayformula({C1:C4;B1:B3}) schreiben.

Mein Problem verwendet arrayFormula(), um ein sich wiederholendes Muster zu kopieren. Wenn ich zum Beispiel den Inhalt der Zelle C1 viermal kopieren möchte, würde ich verwenden.

Dies würde funktionieren und würde den gewünschten Effekt erzielen. Ich habe mich jedoch gefragt, ob es einen besseren Weg dafür gibt. Etwas wie =arrayformula({C1}*12) würde dieses Muster 12 mal wiederholen. Dies würde mir auch ermöglichen, eine dynamische Formel zu haben, wie zum Beispiel =arrayformula({C1}*count(D:D)), wo das Muster sich gemäß einer Variablen wiederholen würde.

Haben Sie irgendwelche Ideen, wie Sie das erreichen, wenn Sie nur native Formeln verwenden (kein JavaScript)?

Antwort

6

Ich würde split() -Funktion anstelle von arrayformula() und rept() -Funktion verwenden, um Zellenpositionen zu wiederholen. Wenn beispielsweise Ihre n = 4 ist die Formel wie folgt aussehen:

=split(rept(C1&";",4),";") 

rept() wiederholt Zellenposition C1 + Semikolon viermal Erzeugen einer Zeichenfolge und Split() Funktion dividiert durch Semikolons horizontalen Zellen erstellt String.

Sie können horizontalen Tisch vertikale Tabelle geführt drehen mit transponieren() Funktion:

=transpose(split(rept(C1&";",4),";")) 

Und ja, können Sie es verwenden, um dynamische Formeln mit Hilfe von ARRAYFORMULA create() Funktion:

=arrayformula(count(D:D)*split(rept(C1&";",4), ";")) 
+0

Funktioniert wie ein Charme !!! VIELEN DANK!!!!!!!!! – user3347814

+0

Schön gemacht, Sir! – Erutan409

+0

Nun, diese Lösung erfordert Ihre Daten als Text und nicht das Trennzeichen, das Sie verwenden ... – Olexa

Verwandte Themen