Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

Xverweis mit mehreren Kriterien mit VBA

Xverweis mit mehreren Kriterien mit VBA
23.06.2022 14:41:21
Martin
Hallo zusammen,
ich versuche aktuell mit VBA die XVERWEIS Funktion zu nutzen. Das klappt auch alles wunderbar, solange ich nur ein Suchkriterium habe. Ich habe aber zwei Kriterien.
Mit der Xverweis Funktion in Excel bekomme ich das richtige Ergebnis, in VBA leider den Fehler "Typen unverträglich".
Die Formel in VBA funktioniert wenn ich nur 1 Suchkriterium und 1 Suchbereich habe. Das Problem liegt anscheinend an der Verknüpfung der beiden Kriterien / Bereiche mit dem "&" Zeichen.
Hat jemand eine Idee wie ich die Formel in VBA hinbekomme?
Vielen Dank!

Sub versuch()
Dim suchkriterium1, suchkriterium2, suchmatrix1 As Range, suchmatrix2 As Range, rueckgabematrix As Range, ergebnis, ersatztext, zeile
Set suchmatrix1 = Tabelle2.Columns("AY")
Set suchmatrix2 = Tabelle2.Columns("AZ")
Set rueckgabematrix = Tabelle2.Columns("BA")
zeile = 2
suchkriterium1 = Tabelle1.Range("N" & zeile).Value
suchkriterium2 = Tabelle1.Range("S" & zeile).Value
ergebnis = Application.WorksheetFunction.XLookup(suchkriterium1 & suchkriterium2, suchmatrix1 & suchkriterium2, rueckgabematrix, ersatztext)
MsgBox ergebnis
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Xverweis mit mehreren Kriterien mit VBA
23.06.2022 15:30:13
Daniel
Hi
das VBA kann zwar Excel-Funktionen ausführen, beherrscht aber keine Matrixformel-Funktionalität.
dh wärend die Excelfunktion XVergleich in einer Zelle bei suchmatrix1 & suchkriterium2 in einer Schleife über die Zekkbereiche läuft und versucht, jede Einzelzelle aus Suchmatrix1 mit der parallelen Einzelzelle aus Suchmatrix2 zu verknüpfen und dann dieses Matrix in die Formel übernimmt, versucht VBA hier stur die beiden Zellbereiche wie Einzelwerte mti & zu verknüpfen und das funktioniert nicht.
entweder musst du die Schleife dann entsprechend selber programmieren, oder du erzeugst die Excelformel als Text in englischer A1-Schreibweise für eine Formel in einer Zelle und berechnest diesen Text mit der funktion EVALUATE.
Gruß Daniel
Anzeige
AW: Xverweis mit mehreren Kriterien mit VBA
23.06.2022 15:43:45
ChrisL
Hi
Ganz schöner Handstand, wenn man auch einfach eine Formel verwenden könnte:

Sub versuch()
Dim suchkriterium1 As String, suchkriterium2 As String
Dim suchmatrix1 As String, suchmatrix2 As String, rueckgabematrix As String
Dim ergebnis As Variant
Dim ersatztext As String, zeile As Long
suchmatrix1 = Tabelle2.Columns("AY").Address(0, 0, , 1)
suchmatrix2 = Tabelle2.Columns("AZ").Address(0, 0, , 1)
rueckgabematrix = Tabelle2.Columns("BA").Address(0, 0, , 1)
zeile = 2
suchkriterium1 = Tabelle1.Range("N" & zeile).Address(0, 0, , 1)
suchkriterium2 = Tabelle1.Range("S" & zeile).Address(0, 0, , 1)
ersatztext = "ein Fehler"
'Formel: =XVERWEIS(1;(AY:AY=Tabelle1!N2)*(AZ:AZ=Tabelle1!S2);BA:BA;"ein Fehler")
ergebnis = Evaluate("XLOOKUP(1,(" & suchmatrix1 & "=" & suchkriterium1 & ")*(" & suchmatrix2 & "=" & suchkriterium2 & ")," & rueckgabematrix & ",""" & ersatztext & """)")
MsgBox ergebnis
End Sub
Übrigens... sollte eine eindeutige Zahl (keine Mehrfachtreffer) gesucht werden, könnte man einfach SUMMEWENNS verwenden.
cu
Chris
Anzeige
AW: Xverweis mit mehreren Kriterien mit VBA
24.06.2022 10:12:21
Martin
Servus Chris,
vielen Dank das klappt.
Ja ich weiß, dass das umständlich ist. Nur leider habe ich nicht eine Formel, sondern hunderte und über mehrere Spalten verteilt. Wenn ich die Funktionalität mit Formeln realisiere (das hatte ich bisher auch), kann ich mit der Datei nicht mehr arbeiten weil ständig was berechnet wird. Filtern wird dann unmöglich.
Ja ich könnte die automatische Berechnung ausschalten. Aber das erklär mal allen Kollegen drum herum, die die Datei auch noch nutzen.
So kann ich die Datei einmal aktualisieren und danach arbeitet jeder mit der Datei.
Nochmal vielen Dank und ein schönes Wochenende!
Gruß
Martin
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige