Excel-Formel- oder VBA-Unterstützung

Excel-Formel- oder VBA-Unterstützung

Ich bin nicht sicher, ob dies in einer Formel möglich ist oder ob VBA erforderlich ist, aber ich habe den folgenden Datensatz.

Datensatz

Ich möchte Werte aus A:F übernehmen, alle leeren Zellen ignorieren und den Wert in Zelle G erstellen (einschließlich Wagenrückläufe nach jedem Paar).

Ich habe einen Text-Join versucht und bin damit ein Stück weit ans Ziel gekommen, aber alle Werte werden in einen String umgewandelt. Wie Sie sehen, müssen sie in A => B B => C C => D gehen.

aber ignorieren Sie Leerzeichen.

Jede Hilfe ist willkommen!

Antwort1

Verwenden:

=TEXTJOIN(CHAR(10),TRUE,INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))&" => "&INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2)))

Durch die Verwendung von INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))und INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2))erstellen wir zwei Arrays aus nicht leeren Zellen, eines, das mit der ersten beginnt und mit der vorletzten endet, und ein zweites, das mit der zweiten beginnt und mit der letzten endet.

Anschließend verketten wir mit " => "und fügen mit TEXJOIN den Zeilenumbruch ein.

und nach unten kopieren.

Bildbeschreibung hier eingeben

Antwort2

Ich würde das folgendermaßen lösen:

Fügen Sie für jede Datenzeile, die das Zwischenergebnis erzeugt, eine Hilfszeile ein: T1, T1, T5, T3, T6, T6 , T2, T2, T3l, T3, T7

Regel: „Wenn Zelle leer ist, fülle Vorgänger aus“ A3: =A1 B3: =if(b1="";a1;b1)

In einer weiteren Hilfszeile können Sie dann kumulativ den endgültigen Ausdruck bilden, indem Sie vbCrlf für die Zeilenumbrüche verwenden: Regel: „wenn sich der Zellinhalt ändert, füge der Formel einen weiteren Unterausdruck hinzu, wenn nicht, wiederhole die alte Formel“ b4: =if(b3<>a3;a4 & vbcrlf & a3 & "=>" b3;a4) ...

verwandte Informationen