Clever-Excel-Forum

Normale Version: Mehrere Spalten - Vergleichsproblem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Liebe Excelcrowd,

trotz längerer Recherche konnte ich zu meinem Problem noch keine Lösung finden ... vielleicht wisst ihr Rat. Anbei eine Datei, wo ich gerne in Spalte D jene Namen von Spalte A ausgeben würde, die auch nur in dieser Spalte vorkommen (also weder in B noch in C vertreten sind). Im Idealfalls sollte dieser Vergleich auch für Spalte B und C funktionieren. Die Formel für Namen, die in allen drei Spalten vorkommen, lautet glaub ich folgendermaßen:

WENNFEHLER(INDEX(A:A;ZEILE(A2)*(VERGLEICH(A2;B:B;0)*VERGLEICH(A2;C:C;0)>0));"")

Und auch wenn's darum ginge, zwei Spalten auf Unterschiede vergleichen, wäre kein Problem. Aber einfache Vorkommen bei mehreren Spalten zu finden, scheint mir momentan noch ein Ding der Unmöglichkeit ...

Pls :69:
Hi,


Code:
=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));"")
Hi,

hier auch für alle Spalten. Da wäre eine Hilfsspalte evtl. hilfreich:

 ABCDE
1   Name nur 1x 
2HansPeterSusiHansHans
3MaxMaxRalfIngridIngrid
4IngridSusanneSusanneAlexAlex
5AlexPaulaPeterKlausKlaus
6KlausMaxPaula Hannes
7PaulaHannesMax Susi

ZelleFormel
D2=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));"")
E2{=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));WENNFEHLER(INDEX(B:B;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)/(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))));WENNFEHLER(INDEX(C:C;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$B$7;$C$2:$C$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))-SUMME((ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)*(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0))));"")))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Vielen Dank, funktioniert. Ist aber doch etwas komplizierter als erhofft :s  Das Problem dabei ist, dass sich Excel aufhängt, wenn ich über 2000 Zeilen und mehrere Spalten habe. Fürchte, in solchen Fällen geht das dann nur über ein Makro, richtig?
Moin,
offensichtlich hast du doch nicht ein so antiquiertes Office/Excel wie angegeben (XP/2002), denn sonst würde AGGREGAT nicht erkannt werden.
Wenn du Excel >=2010 hast, dann wird das bei den (für Excel sehr wenigen) Zeilen mit Power Query -> http://www.excel-ist-sexy.de/power-query-das-add-in/ funktionieren.
Hallo

Zitat:geht das dann nur über ein Makro, richtig?

Korrektr Frage, höfliche Antwort von mir.  Probier bitte die Beispieldatei aus, dann weisst du ob es funktioniert.
Bei den wenigen Beispieln hat es geklappt, bleibt offen wie gut es mit 2000 Daten klappt.  I dont now.

Der Vorteil, es ist ein Universal Makro, das heisst, oben vor Sub stehen zwei Const Anweisungen für LastSpalte + ZielSpalte
Dort kannst du selbst den Tabellenbereich festleghen, denn das Makro ist nicht auf A-C begrenzt. Du kannst die Spalten beliebig erweitern.
Dazu muss natürlich auch die ZielSpalte für das Ergebnis neu festgelegt werden. Die ist auch frei waehlbar.  (darf sich nicht überschneiden)

Mir ist aufgefalledn das nach dem Sortieren manche Namen doppelt sind, weil am Ende ein Space steht. Deshalb das zweite Makro damit man diese Space vor dem auflisten löschen kann.  Ich denke das klaert eine menge Fragen.  Rückmeldung würde mich freuen.

mfg  Gast 123
Moin Günther

ich hatte deine Lösung noch garnicht gesehen als ich meine ins Forum stellte.

Nun ja, jetzt hat er zwei Lösungen, und die freie Auswahl ...

herzliche Grüsse von Gast 123
(16.05.2017, 10:59)BoskoBiati schrieb: [ -> ]Hi,

hier auch für alle Spalten. Da wäre eine Hilfsspalte evtl. hilfreich:

 ABCDE
1   Name nur 1x 
2HansPeterSusiHansHans
3MaxMaxRalfIngridIngrid
4IngridSusanneSusanneAlexAlex
5AlexPaulaPeterKlausKlaus
6KlausMaxPaula Hannes
7PaulaHannesMax Susi

ZelleFormel
D2=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));"")
E2{=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));WENNFEHLER(INDEX(B:B;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)/(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))));WENNFEHLER(INDEX(C:C;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$B$7;$C$2:$C$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))-SUMME((ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)*(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0))));"")))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.

Hallo Edgar, die Formel geht kürzer und fehlerfrei und ohne Strg+Umsch+Enter. Bei deiner Variante fehlen eine Reihe von Namen..:

Code:
=WENNFEHLER(WENNFEHLER(WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(A$1:A32)/(($A$1:A33<>"")*(ZÄHLENWENN(D$1:D1;A$1:A33)=0));1));INDEX(B:B;AGGREGAT(15;6;ZEILE(A$1:A32)/(($B$1:B33<>"")*(ZÄHLENWENN(D$1:D1;B$1:B33)=0));1)));INDEX(C:C;AGGREGAT(15;6;ZEILE(A$1:A32)/(($C$1:C33<>"")*(ZÄHLENWENN(D$1:D1;C$1:C33)=0));1)));"")


Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDE
1 Name nur 1x
2HansPeterSusiHansHans
3MaxMaxRalfMaxIngrid
4IngridSusanneSusanneIngridAlex
5AlexPaulaPeterAlexKlaus
6KlausMaxPaulaKlausHannes
7PaulaHannesMaxPaulaSusi
8 PeterRalf
9 Susanne
10 Hannes
11 Susi
12 Ralf

ZelleFormel
D2=WENNFEHLER(WENNFEHLER(WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(A$1:A32)/(($A$1:A33<>"")*(ZÄHLENWENN(D$1:D1;A$1:A33)=0));1));INDEX(B:B;AGGREGAT(15;6;ZEILE(A$1:A32)/(($B$1:B33<>"")*(ZÄHLENWENN(D$1:D1;B$1:B33)=0));1)));INDEX(C:C;AGGREGAT(15;6;ZEILE(A$1:A32)/(($C$1:C33<>"")*(ZÄHLENWENN(D$1:D1;C$1:C33)=0));1)));"")
E2{=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));WENNFEHLER(INDEX(B:B;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)/(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))));WENNFEHLER(INDEX(C:C;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$B$7;$C$2:$C$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))-SUMME((ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)*(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0))));"")))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Hallo Jörg,

ich habe, wie es auch Gast123 schon bemerkt hat, die Leerzeichen entfernt, dann passt mein Ergebnis auch!

 ABCDE
1   EdgarJörg
2HansPeterSusiHansHans
3MaxMaxRalfIngridMax
4IngridSusanneSusanneAlexMax
5AlexPaulaPeterKlausMax
6KlausMaxPaulaHannesMax
7PaulaHannesMaxSusiMax
8   RalfMax
9    Max
ZelleFormel
D2{=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));WENNFEHLER(INDEX(B:B;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)/(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))));WENNFEHLER(INDEX(C:C;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$B$7;$C$2:$C$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))-SUMME((ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)*(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0))));"")))}
E2=WENNFEHLER(WENNFEHLER(WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(A$1:A32)/(($A$1:A33<>"")*(ZÄHLENWENN(D$1:D1;A$1:A33)=0));1));INDEX(B:B;AGGREGAT(15;6;ZEILE(A$1:A32)/(($B$1:B33<>"")*(ZÄHLENWENN(D$1:D1;B$1:B33)=0));1)));INDEX(C:C;AGGREGAT(15;6;ZEILE(A$1:A32)/(($C$1:C33<>"")*(ZÄHLENWENN(D$1:D1;C$1:C33)=0));1)));"")
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Zellebedingte Formatierung...Format
A21: =ZÄHLENWENN($A$2:$C$7;A2)=1abc
Hallo Edgar, sorry, dass ich widerspreche, dein Ergebnis bleibt... ... habe gerade nochmal die O-Datei runter geladen (wiederholt - danach sofort die Leerzeichen entfernt) dann die gepostete Formel reinkopiert --> Ergebnis..: 

Arbeitsblatt mit dem Namen 'Tabelle1 (2)'
ABCDE
1 Name nur 1x
2HansPeterSusiHansHans
3MaxMaxRalfMaxIngrid
4IngridSusanneSusanneIngridAlex
5AlexPaulaPeterAlexKlaus
6KlausMaxPaulaKlausHannes
7PaulaHannesMaxPaulaSusi
8 PeterRalf
9 Susanne
10 Hannes
11 Susi
12 Ralf
13

ZelleFormel
D2=WENNFEHLER(WENNFEHLER(WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(A$1:A32)/(($A$1:A33<>"")*(ZÄHLENWENN(D$1:D1;A$1:A33)=0));1));INDEX(B:B;AGGREGAT(15;6;ZEILE(A$1:A32)/(($B$1:B33<>"")*(ZÄHLENWENN(D$1:D1;B$1:B33)=0));1)));INDEX(C:C;AGGREGAT(15;6;ZEILE(A$1:A32)/(($C$1:C33<>"")*(ZÄHLENWENN(D$1:D1;C$1:C33)=0));1)));"")
E2{=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7)=0);ZEILE(A1)));WENNFEHLER(INDEX(B:B;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)/(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))));WENNFEHLER(INDEX(C:C;AGGREGAT(15;6;ZEILE($A$2:$A$7)/(ZÄHLENWENN($A$2:$B$7;$C$2:$C$7)=0);ZEILE(A1)+1-SUMME(ZÄHLENWENN($B$2:$C$7;$A$2:$A$7))-SUMME((ZÄHLENWENN($A$2:$A$7;$B$2:$B$7)=0)*(ZÄHLENWENN($C$2:$C$7;$B$2:$B$7)=0))));"")))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Seiten: 1 2