Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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
Inhaltsverzeichnis

Spaltenvergleich

Spaltenvergleich
24.06.2014 10:40:26
Henry
Moin,
ich komme leider nicht weiter und hoffe mir kann noch geholfen werden :)
Ich vergleiche :
Tabellenblatt 1 Spalte 1 gegen (vs.) Tabellenblatt 2 Spalte 1
Ergebnis = Übereinstimmungen werden auf TB3 Spalte 1 angezeigt
Jetzt bräuchte ich aber noch das Ergebnis:
Wenn in TB1 Spalte 1 aber nicht im Ergebnis TB3 Spalte 1 dann bitte
auf TB3 Spalte 4 anzeigen.
Im Moment habe ich im TB1 29 Eintragungen und habe 24 Ergebnisse auf TB3
ich möchte nun die 5 nicht gefunden ebenfalls darstellen.
Habe meinen Code versucht mit "If not" und/oder "" abzuändern funktionierte leider nicht.
Anbei ein Beispiel.
https://www.herber.de/bbs/user/91244.xls
Danke Vorab für eure Hilfe
Mfg

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
MATRIXFormel mit INDEX() und VERGLEICH() ...
24.06.2014 11:04:54
der
Hallo Henry,
... in Deinem Ergebnisbereich der Tabelle 3 folgende MATRIXFormel:
{=WENNFEHLER(INDEX(Tabelle1!A:A;KKLEINSTE(WENN((ISTNV(VERGLEICH(Tabelle1!A$1:A$99;A$28:A$99;))) *(Tabelle1!A$1:A$99"");ZEILE($1:$99));ZEILE(A1)));"") }
Umrandende {} nicht mit eingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen!
und Formel nach unten kopieren.
Gruß Werner
.. , - ...

Dank: MATRIXFormel mit INDEX() und VERGLEICH() ...
24.06.2014 11:19:03
Henry
Hallo Werner,
Super, Danke funktioniert bestens.
Darf ich nur kurz fragen...weisst du warum ich das selbe Ergebnis nicht bekommen habe als ich meinen VBA von ist gleich auf ist nicht gleich gesetzt habe ?
Versuche nur zu verstehen was hinter der Logik steht und warum es nicht ging.
Deine Matrix funkt und benutze ich jetzt schon, danke....

Anzeige
das kann & wird Dir Rudi schreiben ...
24.06.2014 11:47:34
der
Hallo Henry,
... er ist u.a. auch VBA-Profi ich verstehe nur wirklich etwas von Formeln. Aus VBA halte ich mich heraus.
Ich hatte bis auf Deinen jetzigen Beitrag gar nicht gesehen/beachtet, dass Du Deine Daten in Tabelle3!A28:A51 mit VBA ermittelst. Ich Hatte mich nur auf Deine Fragestellung konzentriert. Diese Daten hätte ich übrigens mit einer analogen Formel so:
{=WENNFEHLER(INDEX(Tabelle2!A:A;KKLEINSTE(WENN((ISTZAHL(VERGLEICH(Tabelle2!A$1:A$199;Tabelle1!A$1:A$30;)))*(Tabelle2!A$1:A$199"");ZEILE($1:$199));ZEILE(A1)));"")}
ermittelt und für die Werte SVERWEIS() genutzt.
Gruß Werner
.. , - ...

Anzeige
AW: Dank: MATRIXFormel mit INDEX() und VERGLEICH() ...
24.06.2014 12:11:46
Henry
Hallo Werner,
ich habe die Formel jetzt mal in meine Excelmappe eingebaut.
Sie hat leider nu8r eine kleine Macke...
Konnte den Grund nicht finden.
Kannst du mir helfen ?
Also die Matrixformel ist im TB3 Spalte H ab Zeile 28
Die angezeigten Ergebnisse stammen aus TB1 "IMP"
Es müssten 15 sein sind aber nur 14 echte und eine Null
Woher diese Null kommt kann ich nicht herausfinden jedoch sollte hier das Ergebnis 15 und keine Null sein.
Anbei meine Datei
https://www.herber.de/bbs/user/91248.xlsx

Anzeige
momentan nicht prüfbar, weil ...
24.06.2014 12:22:52
der
Hallo Henry,
... Deine Datei besitzt Bezüge zu einer Beispiel.xls , die hier nicht vorliegt.
Unabhängig davon, würde ich derartige Auswertungen nicht Dateiübergreifend vornehmen sondern möglichst in der Quelldatei. Diese Ergebnisse kann man dann mit einfachen Zellbezügen oder INDEX() aus dieser Datei in die gewünschte übernehmen.
Stelle also Deine neue Datei möglichst entsprechend hier ein.
Gruß Werner
.. , - ...

Logikfehler
24.06.2014 13:26:22
Rudi
Hallo,
du vergleichst deine Tabellen zeilenweise miteinander und trägst den Inhalt bei der ersten Nichtübereinstimmung ein. Es kann aber doch sein, dass der erste Wert der ersten Tabelle erst an der 5. Stelle der 2.Tabelle vorkommt.
Außerdem hast du einen Spaltenfehler:
SheetZiel.Cells(ZeileZiel, 4) = SheetQuelle.Cells(ZeileQuelle, 5)

SheetQuelle.Cells(ZeileQuelle, 5) ist aber leer!! Muss ,1 heißen.
Anstatt mit der Doppelschleife solltest du mit einer Schleife und WorksheetFunction.Countif() arbeiten
  For ZeileQuelle = 1 To SheetQuelle.Range("A65535").End(xlUp).Row
' Nach Übereinstimmung suchen
If WorksheetFunction.CountIf(SheetReferenz.Columns(1), SheetQuelle.Cells(ZeileQuelle, 1)) =  _
0 Then
SheetZiel.Cells(ZeileZiel, 4) = SheetQuelle.Cells(ZeileQuelle, 1)
ZeileZiel = ZeileZiel + 1
End If
Next

Gruß
Rudi

Anzeige
AW: Spaltenvergleich
24.06.2014 11:14:28
Rudi
Hallo,
das ist doch fast das Gleiche wie hier: https://www.herber.de/forum/messages/1367068.html
Sub SpaltenVergleich()
Dim i As Integer
Dim arrA, arrC
Dim objA As Object, objC As Object, objAC As Object, objItem
Dim ZeileZiel As Long
ZeileZiel = 28
Set objA = CreateObject("Scripting.Dictionary")
Set objC = CreateObject("Scripting.Dictionary")
Set objAC = CreateObject("Scripting.Dictionary")
objAC("Beide") = "Nr"
objC("nur Tab2") = 0
With Worksheets(1)
arrA = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 2)
End With
With Worksheets(2)
arrC = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
For i = 1 To UBound(arrA)
objA(arrA(i, 1)) = arrA(i, 2)
Next
For i = 1 To UBound(arrC)
If Not arrC(i, 1) = "No Container in Compass" Then
objC(arrC(i, 1)) = arrC(i, 1)
End If
Next
For Each objItem In objA
If objC.exists(objItem) Then
objAC(objItem) = objA(objItem)
End If
Next
For Each objItem In objC
If objA.exists(objItem) Then
objC.Remove (objItem)
End If
Next
With Worksheets(3)
.Range("A:D").Clear
If objAC.Count Then
.Cells(ZeileZiel, 1).Resize(objAC.Count) = WorksheetFunction.Transpose(objAC.keys)
.Cells(ZeileZiel, 2).Resize(objAC.Count) = WorksheetFunction.Transpose(objAC.items)
End If
If objC.Count Then
.Cells(ZeileZiel, 4).Resize(objC.Count) = WorksheetFunction.Transpose(objC.keys)
End If
End With
End Sub

Gruß
Rudi

Anzeige
nicht gleich nur ähnlich ;-) ...
24.06.2014 11:21:09
der
Hallo Rudi,
... hier sind es weit unter 1000 Datenzeilen dort zigTausende. Insofern ist hier (zumindest für mich) eine Formellösung durchaus vertretbar.
Gruß Werner
.. , - ...

AW: nicht gleich nur ähnlich ;-) ...
24.06.2014 11:45:06
Rudi
Hallo,
ich hab doch geschrieben 'fast das Gleiche'. Und fast ist nicht genau, ergo ähnlich.
Fast getroffen ist ja auch daneben.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige