online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon tshoshua vom 22.07.2020, 20:54 Options

Exceltabellen vergleichen

Hallo!
Trotz Recherche habe ich bis dato kein zutreffendes Thema gefunden und möchte es
deshalb auf diesem Wege noch versuchen.

Das Problem:
Es geht darum zwei Exceltabellen zu vergleichen mit folgendem Ergebnis:

- bei Teil-Übereinstimmung den teilübereinstimmenden Text in Tabelle1/SpalteA farblich
markieren und den Eintrag von Tabelle2/SpalteB in Tabelle1/SpalteB (bei
Mehrfachtreffern weiter mit Spalte C usw.) eintragen

- bei genauer Übereinstimung die Zelle farblich markieren und den Eintrag von
Tabelle2/SpalteB in Tabelle1/SpalteB (bei Mehrfachtreffern weiter mit Spalte C usw.)
eintragen

Jetzt kommt das schwierigste:
1. Leider ist nicht sichergestellt, dass gleiche Artikel auch gleich beginnen - Bsp. 74HC00
und CD74HC00
2. das Gleiche kann auch am Ende passieren - Bsp. 74HC06B und 74HC06
3. dies ist natürlich auch noch in Kombination möglich
4. Alle Sonderzeichen wie "Leerzeichen", "/" oder "-" können, ja besser sollten sogar für
den eigentlichen Vergleich mißachtet werden da sie eigentlich nur der besseren
Lesbarkeit dienen. Die große Ausnahme bildet der Unterstrich "_", er hat die Funktion
einer Wildcard --> heißt, an dieser Stelle darf stehen was will (vergleichbar zu typ. "?"
(nicht "*"))

Zur Verdeutlichung nachfolgend ein Beispiel möglicher, realer vorliegender Daten (die
Datenreihen sehen sortiert aus - sie liegen aber in Wirklichkeit nicht immer so vor):

Tabelle1/beginnend bei SpalteA und Zeile1
BA792
BA792/C1
BA792/N
BAS216
BAS216/FD
BAS316/A
BAS40/C
BAT254
BAT85/C
BAV21/C
BC327
BC327/C
BC327-16
BC327-16/C
BC327-25
BC327-25/B
BC327-40
BC327-40/B
BC337
BC337-16
BC337-16/B
BC337-25
BC337-25/B
BC337-40
BC337-40/B
BC368
BC369
BC369/B
BC369-16/B
BC516
BC516/B
BC517
BC546A
BC546A/B
BC546B
BC546B/B
BC547
BC547/B
BC547B
BC547B/B
BC547C
BC547C/B
BC549C
BC550C
BC556
BC556A
BC556A/B
BC556B
BC556B/B
BC557
BC557B
BC557B/B
BC557C
BC559C
BC618
BC635-16/B
BC636
BC636-10
BC639
BC639/B
BC639-10
BC639-16
BC640
BC879
BC879/B
BF199
BF370
BF420
BF421
BF422
BF423
BF861B
BGB203/H1/S06
BGB203/H2/S01
BGB203/H2/S03
BGB203/H2/S05
BGB210S/1/01
BGB210S/A/01
BS108
BS108/01
BSN254
BSN254A
BSN304
BSP254A
BSP304A
BSR52
BSR52/B
BSR62
BSR62/B
BST72A
BUK118-50DL
BUK119-50DL
BUK124-50L
BUK130-50DL
BUK136-50L
BUK138-50DL/C
BUK139-50DL/C
BUK1M200-50SDLD
BUK210-50Y
BUK214-50Y
BUK217-50YT
BUK219-50Y
BUK2914-50SYTS
BUK7208-40B/C
BUK7219-55A/C
BUK7222-55A/C
BUK7226-75A/C
BUK7230-55A/C
BUK7240-100A/C
BUK7524-55
BUK7528-55
BUK7575-55
BUK7608-55
BUK7608-55/C
BUK7624-55
BUK7624-55/C
BUK9214-30A/C
74HC00
74HC06B

Tabelle2/beginnend bei SpalteA und Zeile1
BAT54C
BAT54C
BAT54C
BAT54S
BAX12
BAV21
BAV99
BAV99
BAV99
BAV99
BAX12
BC327-25
BC546B
BC547B
BC547B
BC547B
BC556_
BC557B
BC640
BC807-25
BC817-25
BC846A
BC846S
BC857BS
BCP53-16
BCP56-16
BCY79VIII
BD139-10
BD139-10
CD74HC00
74HC06

Tabelle2/beginnend bei SpalteB und Zeile1
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031

Freue mich über jede Anregung und erst recht über eine Lösung.

Danke und Gruß
Jürgen


Antwort schreiben

Antwort 1 von Saarbauer vom 25.07.2020, 12:55 Options

Hallo,

ist aus meiner Sicht vernüftig nur mit einem Makro zu machen.

Gruß

Helmut

Antwort 2 von tshoshua vom 25.07.2020, 21:07 Options

Hallo Helmut,
da ich mich mit Makros nicht auskenne - welche Chance siehst Du hier eine Lösung zu finden? Ich meine, ist meine Frage zu anspruchsvoll/umfangreich/groß/...? um hier auf Hilfe zu hoffen?
Gruß
Jürgen

Antwort 3 von tshoshua vom 26.07.2020, 15:20 Options

Hallo Helmut,
da ich mich mit Makros nicht auskenne - welche Chance siehst Du hier eine Lösung zu finden? Ich meine, ist meine Frage zu anspruchsvoll/umfangreich/groß/...? um hier auf Hilfe zu hoffen?
Gruß
Jürgen

Antwort 4 von Saarbauer vom 26.07.2020, 16:45 Options

hallo,

habe mir schon mal was überlegt, aber habe noch keine abschliessende Lösung.

Gruß

Helmut

Antwort 5 von Saarbauer vom 26.07.2020, 17:07 Options

Hallo,

versuch es mal mit dem Makro

Sub Übertragen()
    letzteZeile_t1 = Range("Tabelle1!A65536").End(xlUp).Row
    letzteZeile_t2 = Range("Tabelle2!A65536").End(xlUp).Row
        For i = 1 To letzteZeile_t2
            For j = 1 To letzteZeile_t1
                If InStr(1, Range("Tabelle1!A" & j).Value, Range("Tabelle2!A" & i).Value) > 0 Then
                    letztespalte_t1 = Range("Tabelle1!IV" & j).End(xlToLeft).Column
                    Cells(j, letztespalte_t1 + 1).Value = Range("Tabelle2!B" & i).Value
                End If
            Next j
        Next i
End Sub


Hier werden erstmal nur die Daten übertragen. Ich möchte damit klären ob meine Überlegungen richtig sind

Gruß

Helmut

Antwort 6 von tshoshua vom 28.07.2020, 20:46 Options

Hallo Helmut,
erstmal ein "großes Danke" dass Du mir hilfst. Habe Deinen Makro eingespielt und er funktioniert auch soweit ja schon ganz gut - bis auf 2 Positionen:
- er überträgt leider nicht den BC556_ (der "_" fungiert ja als Platzhalter für ein x-beliebiges Zeichen)
- er überträgt auch nicht den 74HC00

Das nur zu Deiner Info - vielleicht kann das ja momentan noch gar nicht gehen.

Gruß
Jürgen

Antwort 7 von Saarbauer vom 28.07.2020, 21:34 Options

Hallo,

im Moment ist es so, dass meine Suchfunktion

InStr(1, Range("Tabelle1!A" & j).Value, Range("Tabelle2!A" & i).Value)

erläuterung
InStr(Start, Duchsuchte Zeichenfolge(in Tabelle1), Gesuchte Zeichenfolge2(in Tabelle 2))
dadurch wird 74HC00 in Tabelle 1 nicht gefungen, da in Tabelle 2 nur CD74HC00. Bei BC556_ ist das gleiche Problem BC556_ mit dem _ wird nirgendwo in Tabelle 1 gefunden.
Eine sinnvolle Lösung für Fall 1 habe ich im Moment nicht bei Fall 2 wäre eine Löschung des _ die einfachste Lösung.

Eine Abfrage nach Einzelzeichen wäre möglich, führt aber aus meiner Sicht zu keinem brauchbaren Ergebnis. Da mir das zustandekommen der Bezeichnungen nicht klar ist, kann ich natürlich auch keine brauchbare Aussage zu einer Lösung des Restproblems anbieten, wird wahrscheinlich auch nicht machbar sein.

Wegen der farblichen Hinterlegung der Pos,

Sub Übertragen()
    letzteZeile_t1 = Range("Tabelle1!A65536").End(xlUp).Row
    letzteZeile_t2 = Range("Tabelle2!A65536").End(xlUp).Row
        For i = 1 To letzteZeile_t2
            For j = 1 To letzteZeile_t1
                If InStr(1, Range("Tabelle1!A" & j).Value, Range("Tabelle2!A" & i).Value) > 0 Then
                    letztespalte_t1 = Range("Tabelle1!IV" & j).End(xlToLeft).Column
                    Cells(j, letztespalte_t1 + 1).Value = Range("Tabelle2!B" & i).Value
                    If Range("Tabelle1!A" & j).Value = Range("Tabelle2!A" & i).Value Then
                        Range("Tabelle1!A" & j).Interior.ColorIndex = 3
                    Else
                        Range("Tabelle1!A" & j).Interior.ColorIndex = 7
                    End If
                End If
            Next j
        Next i
End Sub


Gruß

Helmut

Antwort 8 von tshoshua vom 29.07.2020, 22:44 Options

Hallo Helmut,

nochmals danke für Deine bisherige Hilfe. Ich finde es ja schon faszinierend wie man durch ein paar Worte (Makro) schon solche Ergebnisse erzielen kann. In jedem Fall ist mein Interesse geweckt - kannst Du mir noch sagen wo ich sozusagen eine Referenz einsehen kann in der die einzelnen Befehle beschrieben sind (in Anlehnung an Deine Beispielbeschreibung "erläuterung: InStr(Start, Duchsuchte Zeichenfolge(in Tabelle1), Gesuchte Zeichenfolge2(in Tabelle 2))" damit ich selbst noch weiter probieren kann.

Gruß
Jürgen

Antwort 9 von Saarbauer vom 30.07.2020, 12:41 Options

Hallo,

leider ist es so, dass es Unmengen an Bücher gibt. Einen richtigen Rat dazu kann ich dir wegen der fehlenden Angabe der Version nich geben und da ich mir vieles über Learning by doing beigebracht habe. Du findest aber hier oder an anderer Stelle im Internet ganz gute Anleitungen.

http://www.herber.de/forum/archiv/116to120/t118299.htm

nur um ein Beispiel mal zu nennen

Gruß

Helmut

Ähnliche Themen

Filtern in Exceltabellen
inselgerd  17.02.2007 - 67 Hits - 5 Antworten

Importieren von Ordnern mit Exceltabellen
sa08  19.03.2008 - 60 Hits - 1 Antwort

vergleichen
offi  23.04.2008 - 88 Hits - 5 Antworten

2 spalten aus 2 Exceltabellen vergleichen
judipauli  29.04.2008 - 1109 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026