Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
zwei Spalten abgleichen
Jockel
Hallo
ich soll zwei Tabellen miteinander abgleichen. Die sehen folgendermassen aus:
A______________B______________
100200_________12,12__________
200300_________14,25__________
450452_________145,214________
500140_________25,2547________
usw.
Diese Tabelle hat ca. 2000 DS und ist die Mastertabelle
Nun gibt es eine zweite Tabelle wo Änderungen drin sind
A______________B______________
200300_________15,55__________
500140_________18,25__________
usw.
Zur besseren übersicht habe ich beide Tabelle nebeneinander in ein Sheet geschrieben:
A______________B______________C_____________D_____________
100200_________12,12__________200300_________15,55__________
200300_________14,25__________500140_________18,25__________
Die Mastertabelle (A,B) soll jetzt mit der Änderungstabelle abgeglichen werden. Es soll geprüft werden:
Wenn der erste DS in Spalte A1 (hier 100200) irgend wo in Spalte C gefunden wird, soll der Wert B2 durch den gefundenen Wert in D ersetzt werden.
Hier ein Beispiel:
In der Spalte A2 steht 200300 drin. dieser Wert wird auch in Spalte C (C1) gefunden. Dann muss der Wert 14,25 durch 15,55 ersetzt werden.
Und so sollen die Saplten abgeglichen werden, welche DS sich verändert haben, und bei treffer, die werte austauschen.
Wie könnte man das denn am schnellsten machen ? per Funktion, per Makro ?
Danke mal für Eure Hilfe.
Jockel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zwei Spalten abgleichen
04.08.2010 10:14:06
Mike
Hey Jockel,
füg mal zwischen B und C eine weitere Spalte ein uns
vergleich die Daten mit Sverweis()
Tabelle1
 ABCDEF
2           
3A______________B______________C_____________D_____________         
4100200_________12,12__________200300_________15,55__________         
5200300_________14,25__________500140_________18,25__________         
6           
7AB  ( C )D 
810020012.12  20030015.55 
920030014.2515.5550014018.25 
10           
11           

verwendete Formeln
Zelle Formel
C8 =WENN(ISTNV(SVERWEIS(A8; $D$8:$E$12; 2; FALSCH)); ""; SVERWEIS(A8; $D$8:$E$12; 2; FALSCH))
C9 =WENN(ISTNV(SVERWEIS(A9; $D$8:$E$12; 2; FALSCH)); ""; SVERWEIS(A9; $D$8:$E$12; 2; FALSCH))

Tabellendarstellung in Foren Version 4.28


Gruss
Mike
Anzeige
noch eine Frage...
04.08.2010 10:29:11
Tino
Hallo,
sind die "DS" einmalig in der Liste oder können diese auch mehrfach vorkommen?
Gruß Tino
hier eine Version wenn keine doppelt...
04.08.2010 10:56:06
Tino
Hallo,
wenn keine doppelt vorkommen, müsste dieser Code recht schnell sein.
Sub Abgleich()
Dim ArreayData()
Dim oDic1 As Object
Dim A&

Set oDic1 = CreateObject("Scripting.Dictionary")


With Tabelle2 'Deine zweite Tabelle evt. anpassen 
    
    'Daten Sammeln 
    ArreayData = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 2).Value2
    For A = 1 To Ubound(ArreayData)
        oDic1(ArreayData(A, 1)) = ArreayData(A, 2)
    Next A

    'Daten mit Deiner Tabelle1 abglichen und ersetzen 
    With Tabelle1 'Deine erste Tabelle1, evt. anpassen 
        ArreayData = .Range("A2", Cells(.Rows.Count, 1).End(xlUp)).Resize(, 2)
        For A = 1 To Ubound(ArreayData)
            If oDic1.exists(ArreayData(A, 1)) Then
                oDic1(ArreayData(A, 1)) = ArreayData(A, 2)
            End If
        Next A
    End With

    .Range("B2").Resize(oDic1.Count) = Application.Transpose(oDic1.items)
End With
End Sub
Gruß Tino
Anzeige
AW: hier eine Version wenn keine doppelt...
05.08.2010 11:02:09
Jockel
Hallo Tino,
Sorry, war unterwegs.
Ja danke, so gehts, passt.
Gruss
Jockel
AW: zwei Spalten abgleichen
04.08.2010 10:35:36
Ben
Ich würde hier mit SVERWEIS arbeiten. In Spalte D =SVERWEIS(D1;MATRIX AUS AB;2;FALSCH)
AW: zwei Spalten abgleichen
04.08.2010 10:48:55
JOWE
Hallo Jockel,
könnte dieses Makro Deine Aufgabe lösen?
Sub Abgleich_und_Korrektur()
Dim cN, cA As Object
For Each cN In Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row)
pr = Cells(cN.Row, 4)
For Each cA In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If Cells(cA.Row, 1) = cN Then
If Cells(cA.Row, 2)  Cells(cN.Row, 4) Then
Cells(cA.Row, 2) = Cells(cN.Row, 4)
Cells(cA.Row, 2).NumberFormat = "0.00"
Cells(cA.Row, 2).Font.ColorIndex = 3
End If
End If
Next
Next
End Sub
Gruß
Jochen
Anzeige
Danke an alle für Eure Hilfe owT
05.08.2010 11:03:14
Jockel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige