Kurze Antwort
=ArrayFormula(vlookup(ROW(1:10),{IF(LEN(A1:A10)>0,ROW(1:10),""),A1:A10},2))
Erläuterung
Angenommen, die Eingabedaten in der Column Afolgenden Tabelle befinden sich in der Zelle B1.
Hinweis: Um die Auswertung der Formel zu vereinfachen, Column Awiederholt die (Eingabe) keine Werte, funktioniert jedoch mit allen Arten von Werten (Buchstaben, Zahlen, Symbole, wiederholt, unsortiert usw.).
| A B
=== + ======= =======
1 | a a
2 | a
3 | b b
4 | b
5 | b
6 | c c
7 | d d
8 | e e
9 | e
10 | f f
VLOOKUP wurde ausgewählt, da es verwendet werden kann, um ungefähre Werte zu finden, und mehrere Werte (Array) zurückgeben kann.
Da die Eingabewerte in beliebiger Reihenfolge angezeigt werden können, wurde anstelle der tatsächlichen Werte die Zeilennummer für nicht leere Zellen verwendet, und leere Zellen haben eine leere Zeichenfolge zugewiesen "".
Es wurde LENanstelle von ISBLANKZellen mit Formeln verwendet, die eine leere Zeichenfolge zurückgeben. FALSEDies kann in einigen gängigen Szenarien zu Problemen führen.
IF(LEN(A1:A10)>0,ROW(1:10),"")
HINWEIS: Wenn Sie drei Zeichen speichern möchten, kann der zweite Parameter ( ""das Zeichen ist das Parametertrennzeichen ,) entfernt werden. Bei der Analyse dieses Teils der Formel werden leere Zellen zurückgegeben FALSE.
Da VLOOKUPdie Nachschlagespalte die erste Spalte anstelle eines Bereichs sein muss, wurde ein "halb manuell" erstelltes Array verwendet.
{IF(LEN(A1:A10)>0,ROW(1:10),""),A1:A10}
Der obige Ansatz spart uns Zellen und Verarbeitungszeit.
""des if-Befehls etwas kürzer gemacht werden (weggelassenes Argument ist standardmäßig leer).