Office: (Office 2013) Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten

Helfe beim Thema Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich muss für mehrere Jahre rückwirkend Datenaufnahmen zusammenführen und mit dem aktuellen Stand vergleichen. Über die Jahre haben sehr viele... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von TobeyMcLovin, 14. Mai 2017.

  1. Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten


    Hallo,

    ich muss für mehrere Jahre rückwirkend Datenaufnahmen zusammenführen und mit dem aktuellen Stand vergleichen. Über die Jahre haben sehr viele verschiedene Menschen mit unterschiedlichen (aber grundsätzlich einem System folgenden) Schreibweisen gearbeitet. Das betrifft hauptsächlich die Reihenfolge der Zeichen. Bsp.:

    XXII/MA/01/134 und XXII/01/134/MA sind egtl. gleich.

    Es ist jedoch vollkommen willkürlich und es kommt eine Vielzahl anderer Zellinhalte (Worte, nur Ziffern, etc.) vor. Beim Vergleich werden die Duplikate nicht erkannt. Habe ich versucht, irgendwo einen häufigen Fehler zu beheben, tauchte irgendwoanders einer auf.

    Meine Frage: Kann ich die Zellinhalte vergleichen, ohne dass auf die Reihenfolge der Zeichen geachtet wird? Ich würde das im zweiten Schritt machen, nachdem die eindeutigen Duplikate bereits raus sind und dann die neu markierten Duplikate händisch nochmals überprüfen.

    :)
     
    TobeyMcLovin, 14. Mai 2017
    #1
  2. Hi Tobey,

    ....smile... na, so ganz ohne System geht gar nichts. Aber hier fällt mir auf, dass beim 2. String lediglich ein /MA angehängt wurde. Wenn das immer so (oder zumindest ähnlich) ist, dann kannst Du vergleichen, ob der kürzere im längeren String enthalten ist. Falls ja, hast Du zumindest einen vermutlichen Treffer.
     
  3. Hallo R J,

    das mit dem /MA ist leider nur ein Beispiel, es gibt aber unzählige andere Verianten.

    Über die römische Signatur habe ich zumindest unterschiedliche Pools von Daten, innerhalb derer ich nun vergleichen muss. Probelmatisch ist auch, dass zB eine 97 für ein Jahr, aber auch für eine laufende Nummer stehen kann. Das erkennt man nur im Kontext. Deshalb hatte ich gehofft, dass Excel irgendwie den kompletten Inhalt der Zelle nimmt, Reihenfolge egal, und ihn mit anderen Zellen vergleichen kann. Ich vermute, dass ich ich viele falsche Duplikate erhielte, aber das kann ich dann per Hand überprüfen. Momentan werden über 6000 mutmaßliche Duplikate nicht erkannt :/
     
    TobeyMcLovin, 15. Mai 2017
    #3
  4. Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten

    Hallo Name?,

    versuche es mal mit (ich gehe davon aus, dass alle Zellinhalte exakt 14-stellig sind):

    PHP:
             {=SUMME(CODE(TEIL($A1;ZEILE($1:$14);1)))*10^6+MIN(CODE(TEIL($A1;ZEILE($1:$14);1)))*1000+MAX(CODE(TEIL($A1;ZEILE($1:$14);1)))}
     
    Superingo2, 15. Mai 2017
    #4
  5. Hallo Tobey,

    1) zu:
    ich nehme an, dass "XXII/01/413/MA" nicht "egtl. gleich" deinem Beispiel ist. Es also nur die Reihenfolgen der Teilstrings beliebieg sein kann. Ist das richtig?

    2) Programm oder Formeln?
    Bei einer Formellösung werden einige Hilfsspalten sinnvoll sein.

    3) Beispieldatei
    Lade doch bitte eine Beispieldatei in der Form, in der du die Kennungen bereitstellen willst hoch und beschreibe wie das Ergebnis dargestellt werden soll.
     
  6. Hallo,

    um den Alptraum etwas zu reduzieren, wären im Bsp 2 Ansätze denkbar:

    - mit "Split(Tx, "/")" beide String aufteilen und einzeln vergleichen
    - alle Buchstaben einzeln vergleichen

    Da es vermutlich noch andere Varianten gibt, werden für die "Nicht-Treffer" noch weitere Ansätze benötigt.

    Sysiphos läßt grüßen.

    mfg
     
    Fennek11, 15. Mai 2017
    #6
  7. Danke zunächst für die zahlreichen Antworten!

    Ich fang mit den Unklarheiten an.

    XXII/MA/01/134 und XXII/01/134/MA beziehen sich auf dasselbe physische Objekt. Es steht auch in der einen oder anderen Form genau so drauf. Bei der Dokumentierung hat das nun aber jeder etwas anders gehandhabt. Daher kann die Reihenfolge von Objekt zu Objekt variieren. Die Listen, die ich bekommen habe, sind teils über 20 Jahre alt.

    Andere Beispiele: XIX/97/90/extra oder /92/K14

    Es soll eine Formellösung sein. Hilfsspalten sind kein Problem, davon habe ich bereits einige nutzen müssen.

    Grundsätzlich wäre es kein Problem, wenn er mir falsche Duplikate ausgibt. Wenn ich bspw. XIX/97/90/extra in der Liste habe und in der anderen XIX/90/97/extra, dann wäre das vermutlich dasselbe Objekt, oder eben nicht (das kann ich nachprüfen). Es wäre auch okay, wenn er mir auch XIX/90/97 (ohne /extra) als Duplikat anzeigt.

    Wichtig ist nur, dass nichts fälschlicherweise rausfliegt und möglichst nichts gänzlich unbeachtet bleibt :S

    Ich werde eine Liste im Laufe des Nachmittages noch hochladen. Zur Darstellung äußer ich mich dann direkt.

    Nochmal vielen Dank für die Ansätze! Ist wirklich ein tolles Forum!
     
    TobeyMcLovin, 16. Mai 2017
    #7
  8. Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten

    Hallo,

    deinen letzten post habe ich erst nach dem Erstellen des Codes gelesen. M.M.n. wird es ohne vba nicht gehen:


    PHP:
             Sub Gleich()
    For 
    1 To Cells(Rows.Count"A").End(xlUp).Row
    T1 
    Split(Cells(i"A"), "/")
    T2 Split(Cells(i"B"), "/")
    If 
    UBound(T1) = UBound(T2Then
    0
    For i1 0 To UBound(T1)
    For 
    i2 0 To UBound(T2)
    If 
    T1(i1) = T2(i2Then G 1
    Next i2
    Next i1
    Debug
    .Print G
    End 
    If
    Next i
    End Sub

    Sub Gl_Buchst
    ()
    With CreateObject("system.collections.arraylist")
    Tx Cells(11)
    For 
    1 To Len(Tx)
    If 
    Not .contains(Mid(Txi1)) Then .Add Mid(Txi1)
    Next i
    .Sort
    Re 
    Join(.toarray"")
    0
    For 1 To Len(Re)
    Asc(Mid(Rei1))
    Next i
    Debug
    .Print ZRe
    End With
    End Sub
     
    Fennek11, 16. Mai 2017
    #8
  9. Hallo TobeyMc Lovin,

    schade, dass Deine posts mit keiner Grußformel enden.*frown.gif*

    Wenn die Länge Deiner Zellinhalte unterschiedlich ist (das konnte ich vorher nicht erkennen), dann könnte Dir diese erweiterte Formel helfen:

    PHP:
             {=SUMME(WENN(NICHT(ISTFEHLER(CODE(TEIL($A1;ZEILE($1:$30);1))));CODE(TEIL($A1;ZEILE($1:$30);1))))*10^6
    +(AGGREGAT(15;6;CODE(TEIL($A1;ZEILE($1:$30);1));4)+AGGREGAT(15;6;CODE(TEIL($A1;ZEILE($1:$30);1));5)+AGGREGAT(15;6;CODE(TEIL($A1;ZEILE($1:$30);1));6))*1000
    +AGGREGAT(14;6;CODE(TEIL($A1;ZEILE($1:$30);1));1)+AGGREGAT(14;6;CODE(TEIL($A1;ZEILE($1:$30);1));2)+AGGREGAT(14;6;CODE(TEIL($A1;ZEILE($1:$30);1));3)}
     
    Superingo2, 16. Mai 2017
    #9
  10. Hallo Ingo,

    ich verstehe zwar nicht, warum deine Formel tut, was sie gut, aber um diese auf eine maximale Feldinhaltslänge von 40 Stellen variabel zu gestalten, ist es mit deiner erweiterten Ersten Formel einfacher:

    {=SUMME(CODE(TEIL(LINKS($A1&" ";40);ZEILE($1:$40);1)))*10^6+MIN(CODE(TEIL(LINKS($A1&" ";40);ZEILE($1:$40);1)))*1000+MAX(CODE(TEIL(LINKS($A1&" ";40);ZEILE($1:$40);1)))}

    Zumindest bei meinen Beispielen sieht das Ergebnis gut aus.

    Und die 3 x 40 Leerstellen können ja noch durch einen Verweis auf ein Feld, das 40 Leerstellen enthält, ersetzt werden.

    Die eigentliche Idee, die hinter der Formel steht, ist mir klar und ich hätte es genauso machen wollen. Aber nie im Leben wäre ich auf diese Formel gekommen.

    Nachtrag: Ich sehe gerade, dass $A1&" 40 Leerstellen" in der Anzeige nur als eine Leerstelle gezeigt wird!
     
    WS-53, 16. Mai 2017
    #10
  11. Hallo WS-53,

    es freut mich, dass Du zumindest versuchst meine Formel zu verstehen, und sie zumindest so gut verstehst, dass Du sie anpassen kannst.
    Aber irgendwie kann ich Dir nicht folgen. Bei mir spuckt Deine Mutation #WERT! aus. Und das wundert mich auch nicht, da A1 bei mir keine 40er Länge hat.
    Meine erste Formel war auch nur so gut, wie ein erster Versuch meistens ist. Sie hat noch Schwächen. Das Minimum von diesen Textbeispielen ist wahrscheinlich immer 47, da der "/" nunmal den Code 47 hat und Buchstaben und Zahlen liegen im Bereich 48 bis 122.
    Daher habe ich bei meinem 2. Versuch mit dem 4. kleinsten Code gearbeitet. Und um noch mehr Granularität herein zu bekommen auch noch mit dem 5. und 6. kleinsten Code, sowie mit dem 1. und 2. und 3.größten Code.
    Bei AGGREGAT konnte ich die Fehlerwerte, die durch fehlende Länge von A1 entstehen leicht ausschließen. Nur leider funktioniert AGGREGAT mit ausschließenden Fehlerwerten nicht bei SUMME, daher musste ich hier nun umständlich mit WENN,DANN,ohneSONST die Fehlerwerte auschließen.

    Ich habe aber noch eine dritte Variante im Kopf, die noch bessere Granularität schafft, aber ich warte nun lieber mal auf Beispieldaten des TS, damit ich nicht zu oft umsonst arbeite.

    LG Ingo

    Nachtrag: Durch Deinen Nachtrag verstehe ich es nun. Du meinst so:
    =SUMME(CODE(TEIL($A1&WIEDERHOLEN(" ";40);ZEILE($1:$40);1)))
    Hat aber den Nachteil, dass der Code vom Blank die 32 hat, und somit zischfach das Kleinste keine sinnvolle Ergebnisse liefern kann.
    Oder man müsste das Blank wieder ausschließen....aber auch das ist aufblähend.
     
    Superingo2, 16. Mai 2017
    #11
  12. Hallo,

    als erste Unterstützung:

    Angenommen viele Aktenzeichen stehen in Spalte A, bei einigen wurde die Reihenfolge vertauscht, aber die Buchstaben sind gleich. Die folgende Funktion hilft so zu sortieren, dass mögliche gleiche Aktenzeichen untereinander stehen.


    PHP:
             Function CheckSum(rng As Range) As Integer
    Dim by
    () As Byte
    If rng.Count 1 Then
    by 
    rng.Value
    CheckSum 
    WorksheetFunction.Sum(by)
    Else
    CheckSum 0
    MsgBox 
    "nur 1 Zelle markieren"
    End If
    End Function
     
    Fennek11, 16. Mai 2017
    #12
  13. Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten

    Hallo Tobey,

    wenn in A1:A14 die Schlüssel stehen ginge dieses.(Im Prinzib VBA-Split)

    1) Die Schlüssel in Spalte B kopieren
    2) für diese Spalte im Menu "Daten" "Text in Spalten" ausführen und
    3) diese Formeln eintragen:

    Spalte F: Code:
    Spalte G: Code:
     
  14. Hallo,

    ich habe mich durch Ingos tollen Ansatz inspirieren lassen und die darin enthaltenen Ideen für eine verfeinerte Lösung aufgegriffen.

    Im Ersten Schritt wird der Ursprungstext in GROSS umgewandelt.
    Im Zweiten Schritt findet eine Bereinigung statt und das Textfeld wird auf eine einheitliche Länge von 30 gebracht.

    Im Dritten und letzten Schritt werden die 10 grössten Zeichen aus Schritt 2 in die Reihenfolge gross > klein gebracht.

    Die Tabelle ist nach dem Ergebnis aus Schritt 3 sortiert und per BF werden identische Begriffe durch Linien kenntlich gemacht.

    Die Erweiterung in Schirtt 3 auf mehr Stellen ist dabei sehr einfach realisierbar.
     
    WS-53, 16. Mai 2017
    #14
  15. Hallo Helmut,

    tolle Lösung! Meinen Respekt dafür!

    Damit man nicht "Text in Spalten" ausführen muss, habe ich alternativ mal die Spalten B bis E verformelt.

    LG Ingo
     
    Superingo2, 16. Mai 2017
    #15
Thema:

Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten

Die Seite wird geladen...
  1. Zellinhalt vergleichen ohne auf die Reihenfolge der Zeichen zu achten - Similar Threads - Zellinhalt vergleichen Reihenfolge

  2. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  3. Arbeitsblätter ein- bzw ausblenden nach Zellinhalt geschützte Arbeitsmappe

    in Microsoft Excel Hilfe
    Arbeitsblätter ein- bzw ausblenden nach Zellinhalt geschützte Arbeitsmappe: Arbeitsblätter ein- bzw ausblenden nach Zellinhalt in einer geschützten Arbeitsmappe Hallo zusammen, dass habe ich bisher hinbekommen...wenn die Arbeitsmappe nicht geschützt ist dann geht es...
  4. Zellinhalt als Datei im Notepad speichern

    in Microsoft Excel Hilfe
    Zellinhalt als Datei im Notepad speichern: Hallo Experten da komme ich nicht mehr weiter...... nur der Zellinhalt von zB. Zelle H3 (bis zu 10000 Zeichen, weder harte noch weiche Zeilenumbrüche sind zugelassen - eine Text- oder CSV-Datei...
  5. Filtern nach Wert in Zellinhalt

    in Microsoft Excel Hilfe
    Filtern nach Wert in Zellinhalt: Hallo. In der angehängten Datei habe ich in "E2" ein Auswahlfeld. Abhängig von diesem Feld möchte ich, daß die Tabelle automatisch nach den Einträgen in den Zellen "F6" bis "F14" gefiltert wird....
  6. VBA Hilfe für Zahlen eingeben und addieren + zellinhalt löschen

    in Microsoft Excel Hilfe
    VBA Hilfe für Zahlen eingeben und addieren + zellinhalt löschen: Hallo Leute ich brauche dringend Hilfe von einem VBA Spezialisten. Ich hoffe ihr seit mir nicht böse wenn ich sage das ich alles in der Datei beschrieben habe. Würde mich sehr freuen wenn jemand...
  7. Zellinhalt mit Dateien vergleichen ob vorhanden

    in Microsoft Excel Hilfe
    Zellinhalt mit Dateien vergleichen ob vorhanden: Hallo, ich bin neu hier. Nachdem ich stundenlang vergeblich im Internet nach einer Lösung suchte, hoffe ich hier Hilfe zu bekommen. Ich arbeite noch mit Excel 2010. Mein Problem: Ich habe eine...
  8. Vergleichen von Zellinhalten incl Gross/Kleinschreibung

    in Microsoft Excel Hilfe
    Vergleichen von Zellinhalten incl Gross/Kleinschreibung: Hallo zusammen. Bei mir klemmts grad. Ich habe 2 Tabellen in unterschiedlichen excelfiles. ich möchte jetzt die zellinhalte von tabelle1.spalteA mit tabelle2.spaltec vergleichen inklusive der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden