Microsoft Excel

Herbers Excel/VBA-Archiv

Mehrere Spalten vergleichen und gleich ziehen | Herbers Excel-Forum


Betrifft: Mehrere Spalten vergleichen und gleich ziehen von: Bernhard
Geschrieben am: 14.02.2012 23:45:57

Hallo,

ich komme hier nicht weiter bzw. habe so gar keinen Ansatz gefunden wie ich 6 Spalten, die ich aus anderen Tabellen extrahiert habe, vergleichen und herauszufinden kann, welche Einträge in der jeweiligen Spalte nicht vorhanden sind.

Die vorhandenen Einträge sollen dann immer nebeneinander stehen, das ist die Mehrzahl.
Die niocht vorhandenen sollen dann soweit nach unten gerückt werden, das gleiche Einträge in einer Zeile stehen.

Die Spalte A ist der Master, hier sind (sollten) alle Einträge vorhanden sein.
Die Spalten B-F sind lückenhaft.

Die Sortierung is t alphabetisch.
Es handelt sich nur um Texteinträge.

Hat jemand einen Ansatz oder eine Idee für mich?

Danke

Bernhard

  

Betrifft: Fiel Upload Beispiel von: Bernhard
Geschrieben am: 14.02.2012 23:54:44

Hier meine Beispieldatei:
https://www.herber.de/bbs/user/78930.xls


  

Betrifft: AW: Mehrere Spalten vergleichen und gleich ziehen von: Reinhard
Geschrieben am: 15.02.2012 05:25:20

Hallo Bernhard,

in einigen zellen befinden sich hinter den Texten noch ne menge Leerzeichen, muß das sein?

Was soll mit den ca. 150 Einträgen geschehien die in B:F stehen aber nicht in A?

Option Explicit

Sub tt()
Dim Zei As Long, Spa As Long, Zei2 As Long
With Worksheets("Tabelle1")
  Zei = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
  .Range("H1:M" & Zei).FormulaLocal = "=WENN(A1="""";"""";GLÄTTEN(A1))"
  .Range("H1:M" & Zei).Value = .Range("H1:M" & Zei).Value
  .Range("A1:F" & Zei).ClearContents
  .Columns("M").Copy .Range("A1")
  .Range("B2:F" & Zei).FormulaLocal = "=WENN(ZÄHLENWENN(I:I;$A2)>0;$A2;"""")"
  .Range("B2:F" & Zei).Value = .Range("B2:F" & Zei).Value
  .Range("I1:M1").Copy .Range("B1")
End With
End Sub

Gruß
Reinhard


  

Betrifft: AW: Mehrere Spalten vergleichen und gleich ziehen von: Bernhard
Geschrieben am: 15.02.2012 06:30:26

Hallo Reinhard,

Danke für die Rückmeldung.

Bzgl. der Leerzeichen, Nein die sind unnötig.

Bzgl der B-F, die Einfachlösung ignorieren. Oder aber Spalte A nach unten mit Leerzellen verschieben, bis es wieder passt.


  

Betrifft: AW: Mehrere Spalten vergleichen und gleich ziehen von: Ass
Geschrieben am: 15.02.2012 08:58:30

Hallo Bernhard,
ich schlage folgenden Weg vor:
1.Unikateliste erstellen
2.Alle Zellen bereinigen(Leerzeichen entfernen)
soweit bin ich mit dem Makro:

Sub Bernhard()
Dim arS, arSTemp, arTemp, i&, j&, k&
Dim r As Range
With Worksheets("Tabelle1")
  Set r = .Range("a1")
  j = Application.CountA(r.CurrentRegion)
  ReDim arTemp(1 To j - 6)
  For i = 1 To 6
    arS = .Range(.Cells(2, i), .Cells(2, i).End(xlDown))
    ReDim arSTemp(1 To UBound(arS))
    For j = 1 To UBound(arS)
      k = k + 1
      arSTemp(j) = Trim(arS(j, 1))
      arTemp(k) = arSTemp(j)
    Next
    Worksheets("Tabelle3").Cells(2, i + 1).Resize(UBound(arSTemp)).Value = Application. _
Transpose(arSTemp)
  Next
End With
With Worksheets("Tabelle2")
  .Cells(2, 1).Resize(UBound(arTemp)).Value = Application.Transpose(arTemp)
  .Range("a2").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlNo
End With
End Sub

Tabelle2 enthält die Unkateliste
Tabelle3 enthält die bereinigten Daten

3.Mit Formel werden in Tabelle2 die Daten aus Tabelle3 rüber gezogen wenn vorhanden
damit habe ich angefangen INDEX/VERGLEICH
muss aber noch dran gefeilt werden
Ich will dir auch noch was lassen
https://www.herber.de/bbs/user/78932.xls


  

Betrifft: AW: Mehrere Spalten vergleichen und gleich ziehen von: Ass
Geschrieben am: 15.02.2012 09:30:51

Hallo Bernhard,
okay, jetzt hab' ich dich mit INDEX in die Irre geführt.
hier noch die Formel
in B2
=WENN(ZÄHLENWENN(Tabelle3!B:B;$A2);$A2;"")
und die kannst du ziehen bis ans Ende

Gruß
Rudi


  

Betrifft: AW: Mehrere Spalten vergleichen und gleich ziehen von: JoWE
Geschrieben am: 15.02.2012 13:52:06

Hallo Bernhard,
ich hätte da auch noch eine Idee: Habe Deine Arbeitsmappe etwas verändert:
jede der vogegebenen Spalten in ein eigenes Tabellenblatt geschoben
Tabelle1 enthält jetzt nur die Spalte A mit den Daten CXR21
Tabelle 2 enthält jetzt nur die Spalte A mit den Daten CXR22 und so weiter
Schließlich habe ich eine Tabelle Auswertung eingefügt, hier werden nach Ablauf des Makros die Ergebnisse sichtbar. Hier die Arbeitsmappe:
https://www.herber.de/bbs/user/78936.xls
Gruß
Jochen


Beiträge aus den Excel-Beispielen zum Thema "Mehrere Spalten vergleichen und gleich ziehen"