Ich habe in Excel zwei Zellen mit Inhalt in der Form „AA BB CC DD“ (also einzelne Textelemente, getrennt durch Leerzeichen, aber kein echtes Array), die jeweils eine Auswahl aus einer Gesamtliste darstellen (entweder auch in der Form oder mit einem Wert pro Zelle in einer separaten Tabelle). Ich möchte in einer weiteren Zelle in der gleichen Form darstellen, welche Elemente aus einer Liste in keiner der Zellen vorkommen.
Das ganze soll ein Mal pro Zeile gemacht werden, Platz für irgendwelche Zwischenrechnungen ist also nicht.
Beispiel:
Gesamtliste: „AA BB CC DD EE“
Zelle 1: „AA BB“
Zelle 2: „CC“
Ergebniszelle soll sein: „DD EE“
dies mit in der Zelle direkt hinterlegten Formeln zu bewerkstelligen wird eher schwierig, falls überhaupt dann sehr unübersichtlich und fehleranfällig. Vor allem wenn die Formel mit einer unbestimmten Anzahl von Textfragmenten umgehen muss.
Sinnvoll wäre eine VBA Funktion, die Zellinhalte als Parameter erhält und das Ergebnis als Text zurückliefert.
In der Funktion kann man mittels dem Befehl Split(…) die Gesamtliste in ihre Bestandteile zerlegen und mit dem Befehl InStr(…) die Vergleiche durchführen.
die Anzahl der möglichen Textfragmente ist in der Tat unbekannt und wird sich auch ändern. Die Formel soll damit klarkommen, ohne dass man was ändern muss.
Dass das ohne VBA nicht geht, hab ich schon befürchtet
die Formel funktioniert leider nur, wenn in den Zellen 1 und 2 zusammenhängende Teilbereiche der Gesamtliste stehen. Das ist in meinem (wohl unglücklich gewählten) Beispiel der Fall, muss aber nicht so sein.
Es könnte genauso sein, dass „AA CC“ aussortiert werden soll.
warum sollte der Platz nicht vorhanden sein? Du kannst Hilfszeilen einfügen die du dann ausblendest oder einfach ein zusätzliches Tabellenblatt als Hilfstabelle benutzen. Das Tabellenblatt wäre auch ausblendbar.
Als Alternative zu Hilfzeile bzw. -tabelle würde mir eine nur die Möglichkeit einer Matrixformel einfallen. Wenn ich mich richtig erinnere sollte es damit möglich sein, allerdings fallen mir dazu die passenden Funktionen gerade nicht ein. Außerdem könnte je nach Listengröße und Anzahl der verwendeten Matrixformeln das ganze Dokument extrem langsam reagieren. Wenn du möchtest kann ich aber gerne schauen ob ich etwas funktionierendes finde.
##Lösung mit Hilfzeile bzw. -tabelle
Ich habe dich so verstanden dass sich die Gesamtliste über mehrere Spalten erstreckt und gehe jetzt mal von folgendem Aufbau aus:
Ich benutze Zeile 4 als Hilfszeile. Mit angepassten Zellbezügen könntest du die Zeile natürlich auch einfach auf ein zusätzliches Tabellenblatt auslagern.
–> Die Formel nach rechts bis E4, bzw. soweit die Gesamttabelle maximal geht, erweitern. Als Einzelergebnisse werden nur die Einträge der Gesamttabelle angezeigt die in A1 und A2 nicht vorkommen und durch Leerzeichen getrennt aneinandergehängt. Leere Zellen in der Gesamttabelle werden ignoriert.
Formel für C1:
=GLÄTTEN(E4)
–> GLÄTTEN() bereinigt ein überflüssiges Leerzeichen, das eingefügt wird wenn A4 eine Übereinstimmung gefunden hat und entsprechend nichts anzeigt.