EXCEL-PROFIS! Kann Excel einen intelligenten Vergleich von Datenn durchführen?

4 Antworten

ich hab nochmal mehrere  Ansätze parallel erstellt und fasse sie jetzt in dieser AW zusammen:

Die beiden Namenslisten können dynamisch übernommen werden und gleichzitig ä,ö,ü,ß ersetzt werden durch ae,oe,ue,ss sowie alle Leerzeichen entfernt, in einem neuen Tabellenblatt A1 und B1 (aus Tabelle1!A1 und ...!B1):

A1:=WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(KLEIN(Tabelle1!A1);"ä";"ae");"ö";"oe");"ü";"ue");"ß";"ss");" ";"")

Kopieren nach B1 und beide runterziehen soweit nötig.

In C1 wird die Gesamtübereinstimmung aller Zeichen in gleicher Position geprüft: =SUMMENPRODUKT((TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)=TEIL(B1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1))*1)/LÄNGE(A1)+N("Übereinstimmung Zeichen an Pos.")

Ergebnis zB 60%

in D1 wird geprüft, wie weit der String von links her übereinstimmt: =WENN(A1=B1;"korrekt";"Länge:"&LÄNGE(A1)&", Übereinstimmg bis Pos.:"&TEXT(SUMMENPRODUKT((LINKS(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1))))=LINKS(B1;ZEILE(INDIREKT("1:"&LÄNGE(A1)))))*1);"00"))

Ergebnis zB Länge:10, Übereinstimmg bis Pos.:05

in E1 dasselbe von rechts her:=WENN(A1=B1;"korrekt";"Länge:"&LÄNGE(A1)&", Übereinstimmg bis Pos.:-"&TEXT(SUMMENPRODUKT((RECHTS(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1))))=RECHTS(B1;ZEILE(INDIREKT("1:"&LÄNGE(A1)))))*1);"00"))

Ergebnis zB : Länge:10, Übereinstimmg bis Pos.:-05 (-, damit deutlich wird, dass von rechts her gezählt wird.)

in F1 beides zusammengefasst als %-Wert:

=WENN(A1=B1;100%;(RECHTS(D1;2)+RECHTS(E1;2))/2/LÄNGE(A1))

Ergebnis zB 50%

Bei voller Übereinstimmung: 100%

50% bedeutet, dass der String links vollständig im Strring rechts enthalten ist, dass aber irgendwo ein Zeichen dazwischengeschoben ist, (betrifft auch 1roemerstrasse32)

Ist ein Zeichen falsch, ist der String je nach Länge von A1 knapp unter 50%.

Sind mehrere Zeichen falsch, erheblich unter 50%

Groß-/Kleinschreibung wird nicht geprüft.

Durch den Ersatz der Umlaute und ß durch Doppelzeichen kann der String zT deutlich länger als das Original im Stammblatt werden, andererseits werden Leerzeichen eliminiert, die %-Zahlen sind also mit Verstand zu lesen.

Einen Spezialfall möchte ich noch erwähnen: Da e und s zugefügt werden, kann es sein, dass trotz eines fehlenden/überflüssigen  Zeichens zufällige Übereinstimmungen mit weiteren e und s auftreten. Es können aber nie 100% (bei der ersten Formel) erreicht werden.

Ich hatte auch überlegt, umgekehrt alle ae, oe, ue, ss durch ä, ö, ü, ß zu ersetzen. Trotz des Vorteils der kürzeren Strings habe ich davon wieder Abstand genommen: die resultierenden Strings wären evtl recht unlesbar geworden: Mauerpass zu maürpaß wäre sehr gewöhnungsbedürftig, selbst eßen entspricht keinem gewohnten Schriftbild und aufderlüg (schwäbisch-alemannisch) ist Sinn-entstellend.

PS: Du kannst das Ganze natürlich auch in Dein Stammblatt zurückversetzen, hätte vllt den Vorteil, dass man bei fixierten Titelspalten sofort Zugriff auf das Original hat zum Korrigieren.

So, nun hoffe ich, dass Du überhaupt nochmal hier reinschaust, Du hast dich ja seit meiner 1. AW nicht mehr gemeldet.

Stark!

Aber man sieht... Deine Nacht war kurz. ;-)

1
@Funfroc

danke für die Rückmeldung wenigstens von dritter Seite und ja, der Schlaf geht mir heute ab...

0

ich bin mal kreativ geworden und hab da fgolgenden Vorschlag:

kopiere beide Spalten in ein neues Blatt nach A:A und B:B.

ersetze in beiden Spalten ä durch ae, ö durch oe, ü durch ue und ß durch ss sowie das Leerzeichen durch nichts, ALLE ERSETZEN.

Dann stellst Du fest, welches der längste String ist mit {=MAX(LÄNGE(A:A))}

[Matrixformel, {} nicht eingeben sondern Formel anstatt mit Enter mit Ctrl+Shift+Enter (gleichzeitig) abschließen]

dann in jede Zeile diese Formel:

=WENN(A1=B1;"korrekt";"Länge:"&LÄNGE(A1)&", Fehler ab Pos.:"&0
+(LINKS(A1;1)=LINKS(B1;1))+(LINKS(A1;2)=LINKS(B1;2))
+(LINKS(A1;3)=LINKS(B1;3))+(LINKS(A1;4)=LINKS(B1;4))
+(LINKS(A1;5)=LINKS(B1;5))+N("...")+1)

Das Ergebnis sieht dann zB so aus:

  1. Länge:5, Fehler ab Pos.:4
  2. Länge:6, Fehler ab Pos.:6
  3. korrekt
  4. ...

Du kannst Dir die Eingabe vereinfachen, indem Du eine Formelzeile samt umbruch kopierst und immer wieder mit Strgf+c anfügst und erst am Schluss alle Zahlen richtig einsetzt. Bei größeren Längen empfehlen sich 5-er-Serien, die gehen noch in eine Zeile.

(brauchst ja die Gesamtformel nur einmal erstellen und dann kopieren)

Ergänzennd kannst Du in einer weiteren Spalte noch die identische Formel mit RECHTS erstellen: 2 Zellen markieren, Strg+h, links durch rechts, Alle ersetzen.

Summieren sich die beiden Werte nicht zu Länge+1, sinds mehrere Fehler.

Hab das jetzt nur mit 2x3 Einträgen erstellt, probiers aus, obs bei Dir geht!

Kannst übrigens noch eine bedingte Formatierung drüberlegen:grün bei "korrekt", rot bei allem anderem und <>"".

wenn Du anstatt mit Links(A1;1) mit Teil(A1;1;1) arbeitest, kannst du Dir die Zeichen auch einzeln anschauen und nach demselben Schema auswerten, Du bekommst allerdings nicht die Position, sondern die Zahl der übereinstimmenden Zeichen, die Du durch Länge(A1) dividieren kannst und als % formatierenn. Ist vllt besser.

Das Problem ist in allen Fällen, wenn ein Zeichen fehlt oder zuviel ist; dann sind ALLE Folgenden falsch!

0
@Iamiam

hab das nochmal als konkrete Formel erstellt (als % formatieren!):

=((TEIL(A1;1;1)=TEIL(B1;1;1))+(TEIL(A1;2;1)=TEIL(B1;2;1))
+(TEIL(A1;3;1)=TEIL(B1;3;1))+(TEIL(A1;4;1)=TEIL(B1;4;1))
+(TEIL(A1;5;1)=TEIL(B1;5;1))+N("weitere"))/LÄNGE(A1)

Ließe sich vllt auch noch als Matreix- oder Sumprod-Formel schreiben, abetr ich muss jetzt schlafen!

0
@Iamiam

Hab das doch noch schnell erfolgreich gemacht:

=SUMMENPRODUKT((TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1)=TEIL(B1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1))*1)/LÄNGE(A1)

Aber jetzt endgültig: bonne nuit!

0

Excel/Numbers: Datensätze abgleichen?

Liebe Excel/Numbers Profis,

ich nutze Numbers, sicherlich ist das Prinzip bei Excel gleich. Ich möchte Infomationen aus zwei Datensätzen abgleichen. Der Fall:

Datensatz 1:

  • Spalte A beinhaltet Auftragsnummern (um die geht es)
  • Spalte B - I sind alle unterschiedlich (Bezeichnung, Notizen, Netto und Bruttowert, etc.), sollen stets mit Spalte A zusammen bleiben

Datensatz 2:

  • Spalte A beinhaltet wieder Auftragsnummern
  • Spalte B und C ebenfalls wieder wichtige Daten die zu Spalte A gehören

Ich möchte den Datensatz 2 in die Datei mit Datensatz 1 kopieren. Dann möchte ich beide Datensätze nach den Auftragsnummern sortieren. Datensatz 2 hat weniger Einträge als Datensatz 1.

Warum: Datensatz 1 sind alle Aufträge die wir in einem Monat erstellt haben. Datensatz 2 ist die Lieferliste eines Lieferanten von mehreren Lieferanten.

Die Zeilen aus Datensatz 1 die keinen Wert in Datensatz 2 haben, sollen einfach ignoriert werden. Sprich, die Zeile in der Daten des Datensatz 2 stehen würden, kann dann einfach leer bleiben.

Ich möchte ferner sehen ob es der EURO-Wert aus Datensatz 1 kleiner, gleich oder größer ist als der aus Datensatz 2. Hierzu müssten die entsprechenden Spalten abgeglichen werden.

Ziel ist es, zu visualisieren ob es Abrechnungsfehler gibt. Falls unser Lieferant einen Fehler gemacht hat. Es reicht aus, wenn ich sehe ob der Wert kleiner, gleichgroß oder größer ist als unserer. Die Tabelle muss darüber hinaus keine weiteren Bewertungen/Berechnungen der Euro-Werte vornehmen.

Ich bedanke mich für Eure Hilfe schon einmal im Vorraus.

Beste Grüße!

...zur Frage

Was möchtest Du wissen?