Scott präsentiert eine ordentliche Lösung für neuere Versionen von Excel. Die anderen drei Lösungen (bis jetzt) verwenden einfache Funktionen, die in jeder Version von Excel funktionieren. Die abgrenzenden Kommas sind jedoch etwas komplizierter als diese Formeln. Um dies in diesem Lösungsstil zu erreichen, ist für jedes Komma eine gewisse Logik erforderlich.
Hier sind die möglichen Kombinationen von aktuellen und fehlenden Werten:
Die erste Zeile enthält keine fehlenden Werte. Die nächsten vier Zeilen haben an jeder möglichen Position einen fehlenden Wert. Die nächsten sechs Zeilen enthalten an jeder möglichen Position zwei fehlende Werte. Dann die vier Reihen von drei fehlenden Werten und schließlich alle fehlenden Werte. Um ein Komma dort zu erhalten, wo es benötigt wird, und nur dort, wo es benötigt wird, benötigen Sie eine Logik für jedes Komma.
Am einfachsten ist es, das Komma mit dem Wert "next" zu verknüpfen. An jeder Kommaposition gibt es kein Komma, wenn zuvor keine Werte vorkamen (was für jede Position ein anderer Fall ist). Wenn es einen vorhergehenden Wert gibt, möchten Sie ein Komma nur, wenn die nächste Position einen Wert enthält. Die Komma-Logik sieht also so aus:
First comma: =IF(J3="","",IF(K3="","",", ")) or =IF(AND(J3<>"",K3<>""),", ","") Second comma: =IF(J3&K3="","",IF(L3="","",", ")) or =IF(AND(J3&k3<>"",L3<>""),", ","") Third comma: =IF(J3&K3&L3="","",IF(M3="","",", ")) or =IF(AND(J3&K3&L3<>"",M3<>""),", ","")
Ich habe jedes Komma in eine eigene Spalte eingefügt, um das Muster mit den verschiedenen Wertekombinationen zu veranschaulichen:
Die Lösung verkettet die Werte (oder leer, wenn keine) mit den Kommas. Zur besseren Lesbarkeit ist hier die Formel mit dem Komma als Referenz auf die Formelzelle eingefügt:
=IF(J3="","",J3) &N3 &IF(K3="","",K3) &O3 &IF(L3="","",L3) &P3 &IF(M3="","",M3)
Wenn Sie die Kommaformeln in die Ergebnisformel einsetzen, erhalten Sie:
=IF(J3="","",J3) &IF(AND(J3<>"",K3<>""),", ","") &IF(K3="","",K3) &=IF(AND(J3&k3<>"",L3<>""),", ","") &IF(L3="","",L3) &=IF(AND(J3&K3&L3<>"",M3<>""),", ","") &IF(M3="","",M3)