Clever-Excel-Forum

Normale Version: Reihen mit identischen Feldern automatisch zusammenführen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebes Forum,

[attachment=48890]


ein für mich kniffliges Problem! Ich möchte:

1) Zelle E7 mit den 11 darunterlegenden Zellen (also E8 bis E18) vergleichen.
2) wenn eine der Zellen E8 bis E18 identisch mit E7 ist, in dieser Zeile (hier als Beispiel Zeile 13) in den Zellen F13 bis H13 nach dem Formelergebnis "X" suchen.
3) wenn kein "X" gefunden wird, nichts tun
4) wenn ein "X" gefunden wird, dieses ausschneiden und vertikal nach oben in die erste Zeile, also in diesem Beispiel von G13 nach G7 verschieben.

Ist so etwas in Excel möglich?

Danke und liebe Grüße,

Gebhard
Hi,

möglich ist viel, magst du auch noch den Sinn deiner Anfrage erläutern? Dann kann man bestimmt besser helfen. Denn dein Problem scheint mir ein XY-Problem zu sein.
Also: was willst du eigentlich erreichen?
Hallo Gebhard

zum Beispiel so:

=WENN(UND(ZÄHLENWENN($E$27:$E27;$E27)=1;SUMME(($E$7:$E$12=$E27)*(F$7:F$12="x"))>0);"x";"")
(25.07.2023, 12:52)HKindler schrieb: [ -> ]Denn dein Problem scheint mir ein XY-Problem zu sein.
Also: was willst du eigentlich erreichen?

Blush Stimmt, ich werd versuchen mich genauer auszudrücken...

Ich habe in einer proprietären Adressdatenbank (https://www.lundk.de/product/zam/) 10.000 Datensätzen (E-mail Adressen), die einem oder mehreren Verteilern (V1 bis V12) zugeordnet sind.
Ich möchte diese Datenbank zu einer Newsletterlösung (https://github.com/Mailtrain-org/mailtrain) migrieren.
Für jeden der Verteiler V1 bis V12 soll es einen eigenen Newsletter geben. Daher brauche ich beim Export aus der Adressdatenbank bei jedem Datensatz zusätzliche Felder, in denen vermerkt ist, welchen Verteilern er zugeordnet ist. 
Die Adressdatenbank kann das aber nicht. Was sie kann ist, einen Export mit allen einem Verteiler zugehörigen Datensätzen zu machen. Also habe ich zwölf Exporte gemacht,  die V1, V2, V3,...,V12 heissen und jeweils nur die Datensätze enthalten, die in diesem Verteiler vorkommen sollen.
Jetzt habe ich also 12 Datensätze mit teilweise identischen Einträgen, weil ja ein Datensatz in mehreren Verteilern vorkommen kann.
In der Excel Tabelle zu versuche ich zu erreichen, aus den Duplikaten wieder jeweils einen Datensatz zu machen, der aber jetzt vermerkt hat, in welchen Verteilern V1 bis V12 er aufscheinen soll. So kann ich das in mailtrain importieren. 
Beiliegend noch ein Auszug aus meinem Export, dabei sind die verschiedenen Verteiler schon untereinander sortiert. Ist das so verständlicher?
Moin

Du benötist nur die ersten beiden Spalten und daraus eine Pivot.
Arbeitsblatt mit dem Namen 'MASTER (2)'
HIJKLMNOPQRS
2Anzahl von HerkunftHerkunft
3EMailV1V2V3V4V5V6V7V8V9V11V12
44@gmx.net11
56@qq.com11
692@chello.at11
799b@mail.de11
8a@yahoo.co.uk1111111111
9abc@stud.uni-graz.at11
10def@cua.edu11
11ghi@gmail.com11
12jkl@gmx.at11
13mno@mail.muni.cz11
14xyz@mail.ru11
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Hallo,

sofern die entsprechenden Excel-Funktionen, wie bspw. NACHZEILE, zur Verfügung stehen, gingen auch folgende zwei Möglichkeiten.
Basierend auf der Beispieldatei (Listen_4_Mailtrain v5.xlsx).

Variante 1 - in Zelle A38 - erstellt den Bereich anhand der Spalte A (E-Mails) und der bestehenden Verteilung D2:O31

PHP-Code:
=LET(Adressen;$A$2:$A$31;Verteiler;$D$2:$O$31;
 
fnThunk;LAMBDA(X;LAMBDA(X));
 
vnUnique;EINDEUTIG(INDEX(Adressen;0;1));
 
vnArrays;NACHZEILE(vnUnique;LAMBDA(V;fnThunk(NACHSPALTE(FILTER(Verteiler;Adressen=V);LAMBDA(A;TEXTKETTE(A))))));
 
vnMatrix;MATRIXERSTELLEN(ZEILEN(vnUnique);SPALTEN(Verteiler);LAMBDA(X;Y;INDEX(INDEX(vnArrays;X;1)();1;Y)));
 
HSTAPELN(vnUnique;MATRIXERSTELLEN(ZEILEN(vnUnique);2;LAMBDA(X;Y;""));vnMatrix)) 

Variante 2 - in Zelle A52 - erstellt den Bereich direkt anhand der Spalten A (E-Mails) und B (Herkunft)

PHP-Code:
=LET(Adressen;$A$2:$A$31;Herkunft;$B$2:$B$31;
 
vnKeys;Adressen&"-"&Herkunft;
 
vnUnique;EINDEUTIG(INDEX(Adressen;0;1));
 
vnList;"V"&SEQUENZ(1;12);
 
vnMatrix;MATRIXERSTELLEN(ZEILEN(vnUnique);SPALTEN(vnList);LAMBDA(X;Y;LET(N;WENNFEHLER(VERGLEICH(INDEX(vnUnique;X;1)&"-"&INDEX(vnList;1;Y);vnKeys;0);0);WENN(N>0;"x";""))));
 
HSTAPELN(vnUnique;MATRIXERSTELLEN(ZEILEN(vnUnique);2;LAMBDA(X;Y;""));vnMatrix)) 

Gruß
Hi,

noch eine Variante für ein halbwegs aktuelles Excel...

B38: =D1:O1
A39: =EINDEUTIG(A2:A31)
B39: =ZÄHLENWENNS(B2:B31;B38#;A2:A31;A39#)
Liebes Forum,

Danke für eure Hilfsbereitschaft, echt unglaublich was ihr an Wissen habt! Ich habe den Pivot Table verwendet, das habe ich am schnellsten verstanden...
Aber trotzdem danke an alle anderen!

Schöne Grüße,

Gebhard
Hallo  Gebhard,

hier noch eine Excel Power Query Lösung.

Gruß von Luschi
aus klein-Paris
Hallo Helmut,

schon erstaunlich, wie einfach es sein kann, wenn man in E-2021/365 den richtigen Ansatz hat; mit PQ habe ich es da doch ein bißchen schwerer - dafür funktioniert es aber auch runter bis E_2010.

Gruß von Luschi
aus klein-Paris

PS: hier noch mal die PQ-Lösung!