ich sitze jetzt hier vor einer Problematik wo ich keine Lösung zu finde, ob jetzt meine Suche hier im Forum oder das Befragen verschiedener KI´s, haben zu keinem Ergebnis geführt. Vorab, mit VBA bin ich nicht vertraut und möchte das Problem gerne mit Excelmitteln lösen. Ich habe zwei recht große Tabellen (ca. 17.000 Zeilen und ca. 100 Spalten) wo in jeder Zeile viele unterschiedliche Werte stehen, allerdings mehrmals auch oft die selben Werte. Ich möchte die Dubletten, also gleichen Textwerte, durch unterschiedliche Werte aus einer anderen Tabelle ersetzen. Die unterschiedlichen Werte in der anderen Tabelle befinden sich in Spalten. Die Reihenfolge der neuen Werte in den Zeilen ist unwichtig. Hat da jemand eine idee wie ich das umsetzen könnte?
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28 • Mbaer
entschuldige bitte, dass ich mich jetzt erst zurück melde. Ich danke dir vielmals für deine Unterstützung - die AGGREGAT Formel hat tatsächlich den Durchbruch gebracht - mega Danke ? Zuvor hatte ich noch nie von dieser Funktion gehört oder gelesen, und zugegebenermaßen musste ich im Excel Lexikon mehrmals nachlesen um zu verstehen wie die einzelnen möglichen Werte funktionieren. Danke Helmut
09.05.2025, 15:59 (Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2025, 15:59 von EA1950.)
Hallo,
alternativ von mir 2 Formelvarianten. Dazu musst du nur jeweils eine einzige Formel eingeben bzw. kopieren. Ausgehend von deiner Beispieldatei, habe ich in den beiden Formeln deine Datenbereiche fett gekennzeichnet.
Formel 1: Gleiche Werte je Zeile werden durchnummeriert (ohne Neue-Werte-Liste): =LET(m; $C$2:$H$5; MATRIXERSTELLEN(ZEILEN(m); SPALTEN(m); LAMBDA(i;j; LET(w; INDEX(m; i; j); WENN(ODER(ISTZAHL(w); i = 1); w; LET(zl; ÜBERNEHMEN(ZEILENWAHL(m; i); ; j); w & SUMME(1 * (zl = w))))))))
Formel 2: Jeder Wert pro Zeile wird durch den neuen n. Wert ersetzt (also mit Neue-Werte-Liste): =LET(m; $C$2:$H$5; nw; $A$3:$A$19; MATRIXERSTELLEN(ZEILEN(m); SPALTEN(m); LAMBDA(i;j; LET(w; INDEX(m; i; j); WENN(ODER(i = 1; j = 1; ISTZAHL(w)); w; LET(zl; ÜBERNEHMEN(ZEILENWAHL(m; i); ; j); nwf; FILTER(nw; REGEXTESTEN(nw; w); w); INDEX(nwf; SUMME(1 * (zl = w)); 1)))))))
vielen Dank für deine Antwort. Ich hab das jetzt mit Helmut seiner Formel sehr gut, und vor allem für mich nachvollziehbar, umsetzen können. Ich hab die Angewohnheit, dass ich für mich neue Formeln immer erstmal verstehen muss bevor ich diese Live anwende. Und bei deiner Formel brauche ich schon etwas bis ich die vorab verstehen kann. Aber dankbar bin ich dir dennoch, denn es ist ja nicht selbstverständlich, daß gilt ja auch für Helmut, dass man sich die Zeit nimmt und solche Formeln für andere ausarbeitet.