Clever-Excel-Forum

Normale Version: Zellen unterschiede
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Abend Community,

Ich habe ein Anliegen, wo Ich nicht weiß, ob dies überhaupt möglich ist.

Ich habe eine Tabelle (2000 Zeilen)
Hier sollen in jeder Zeile, 2 Zellen miteinander verglichen werden.
Wenn diese 2 Zellen, nur einen geringen Unterschied aufweisen, soll mir das angezeigt werden oder anders rum.

Hier hab Ich mal ein Beispiel erstellt was Ich meine [attachment=32785]

Gibt es eine Möglichkeit einen solchen Vergleich zu ziehen ? 

Danke für eure Hilfe.

Liebe Grüße
MSBG
Ohne Dateiöffnen (da Text ausreichend). Alternativ:

C2: =A2=B2

C2: =IDENTISCH(A2;B2)

Anschließend nach C sortieren.
Hallo Denis,

dieser Code kann deine Vorlage reproduzieren:

Code:
Sub Main
for i = 1 to cells(rows.count, 1).end(xlup).row
    if instr(1, lcase(cells(i,1)), lcase(cells(i,2))) > 0 then
        cells(i,4) = "kleiner Unterschied"
    else
        cells(i,4) = "großer Unterschied"
    endif
next i
End Sub

mfg
(03.07.2020, 17:35)Fennek schrieb: [ -> ]Hallo Denis,

dieser Code kann deine Vorlage reproduzieren:

Code:
Sub Main
for i = 1 to cells(rows.count, 1).end(xlup).row
    if instr(1, lcase(cells(i,1)), lcase(cells(i,2))) > 0 then
        cells(i,4) = "kleiner Unterschied"
    else
        cells(i,4) = "großer Unterschied"
    endif
next i
End Sub

mfg

Hallo Fennek,

Sorry für das dumme anstellen, bin noch recht am Anfang
Als was muss Ich "i" definieren, da Ich eine Fehlermeldung erhalte.

Ich weißt nicht, ob dass bei meinem Text hervorgegangen ist, das sind aber nur Beispiele.
Wie gesagt habe Ich über 2000 Zeilen, wo überall unterschiedliche Namen drin stehen.
Aber Ich vermute, du hast mich verstanden  :23:
Wenn ich dich richtig verstanden habe, gibt es 2 Alternativen:

- treu zum Lehrbuch: Dim i as long
- ansonsten: lösche "Option explicit

Wichtiger sind die Kriterien:

"Kleiner Unterschied" bedeutet, dass der Name der Spalte B OHNE Berücksichtigung von Groß- / Kleinschreibung in Spalte A enthalten ist.
(03.07.2020, 18:37)Fennek schrieb: [ -> ]Wenn ich dich richtig verstanden habe, gibt es 2 Alternativen:

- treu zum Lehrbuch: Dim i as long
- ansonsten: lösche "Option explicit

Wichtiger sind die Kriterien:

"Kleiner Unterschied" bedeutet, dass der Name der Spalte B OHNE Berücksichtigung von Groß- / Kleinschreibung in Spalte A enthalten ist.


Okay, soweit funktioniert es nicht schlecht.
Aber bei Fällen wie:
Der eine Name enthält Bindestriche = großer Fehler (sollte ein kleiner sein)
oder
Spalte A Gisela Maier Spalte B Gisela Maier Helmut Maier
Hier ist auch ein großer Unterschied obwohl es ein kleiner sein sollte.
oder hier Spalte A Artur Sofin Spalte B Timo Sofin
müsste ein kleiner sein

Auch bei Klammern kommt ein großer Fehler

Kennst du dafür noch eine Möglichkeit ?
Sonderzeichen kann man vor dem Vergleich löschen.

Zitat:Spalte A Gisela Maier Spalte B Gisela Maier Helmut Maier
Hier ist auch ein großer Unterschied obwohl es ein kleiner sein sollte.
oder hier Spalte A Artur Sofin Spalte B Timo Sofin
müsste ein kleiner sein

Mit dem gezeigten Code geht das nicht, da müßte vollkommen anderst geprüft werden.
(03.07.2020, 19:05)Fennek schrieb: [ -> ]Sonderzeichen kann man vor dem Vergleich löschen.


Mit dem gezeigten Code geht das nicht, da müßte vollkommen anderst geprüft werden.


Hättest du dafür eine Idee? 
Sind wie gesagt, über 2000 Zeilen.
Wäre schön wenn das ganze über eine Funktion gehen würde.
Hallo MSBG,

bitte nicht unnötig vollzitieren (vor allem, wenn sich eh nur zwei User unterhalten). Zum Verständnis notwendige Zitate können auch einzeln herauskopiert werden.
Mit dem "." (Punkt) als sonderzeichen hat es nicht geklappt, aber sonst ...

Code:
Sub Main
ll = "-() " '  Liste aller Sonderzeichen
ll = lcase(ll)

for i = 1 to cells(rows.count, 1).end(xlup).row
    Tx = lcase(cells(i,1) & "#" & cells(i,2))
    for l = 1 to len(ll)
        Tx = replace(Tx, mid(ll, l,1), "")
    next l
    Ty = split(Tx,"#")
    cells(i+10,1) = Ty(0)
    cells(i+10,2) = Ty(1)
    if instr(1, Ty(0), Ty(1)) > 0 then
        cells(i,4) = "kleiner Unterschied"
    else
        cells(i,4) = "großer Unterschied"
    endif
next i
End Sub
Seiten: 1 2