Zellen unterschiede
#1
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
.xlsx   vergleich.xlsx (Größe: 8,71 KB / Downloads: 8)

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

Danke für eure Hilfe.

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

C2: =A2=B2

C2: =IDENTISCH(A2;B2)

Anschließend nach C sortieren.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#3
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
Top
#4
(03.07.2020, 18: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:
Top
#5
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.
Top
#6
(03.07.2020, 19: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 ?
Top
#7
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.
Top
#8
(03.07.2020, 20: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.
Top
#9
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#10
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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste