Anzeige
Archiv - Navigation
1524to1528
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

Index mit 2 match-Abfragen

Index mit 2 match-Abfragen
29.11.2016 17:55:55
Winfried
Hallo zuammen,
hänge an einem Problem fest und komm einfach nicht weiter.
Ich versuche in einer Unterfunktion eine Matrix auszulesen, damit der ermittelte Wert zum Aufrufpunkt zurückgegeben wird. Leider bekomme ich den Laufzeitfehler 13 "Typen unverträglich" und hab scheinbar ein Brett vorm Kopp.
Function entfernung(von As String, nach As String) As Double
Set TB5 = Sheets("Abstandsmatrix")
Worksheets("Abstandsmatrix").Activate
With Application.WorksheetFunction
entfernung = .Index(TB5.Range("D4:Z30"), .Match((TB5.Rows(1)), von, 0), .Match((TB5.Columns(1)), _
nach, 0))
' Debug.Print entfernung
End With
End Function
Abgefragt wird übrigens eine Matrix mit Geokoordinaten(von & nach) und den entsprechenden Entfernungen.
Über eure Hilfe würde ich mich sehr freuen.
Vielen Dank im Voraus für eure Mühen.
Winfried

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Index mit 2 match-Abfragen
29.11.2016 18:16:45
Daniel
Hi
du hast die falsche Reihenfolge in der Match-Funktion:
zuerst kommt der Suchwert, dann die Zeile/Spalte, in welcher gesucht wird:
dh richtig wäre .Match(von, TB5.Rows(1), 0) bzw .Match(bis, TB5.Columns(1), 0)
desweitern fällt auf, dass du jeweils in der ganzen Zeile/Spalte suchst, aber dein Zellbereich im Index erst ab Zeile 4 und Spalte D beginnt.
das passt nicht so ganz zusammen. dh wenn die Match-Funktionen als Ergebnis jeweils 5 haben, wird die Indexfunktion nicht den Wert aus E5 nehmen, sondern den Wert aus H8.
anstelle von Match könnte man aber auch mit .FIND arbeiten:
Function entfernung(von As String, nach As String) As Variant
Dim Zeile as Range, Spalte as Range
With  Sheets("Abstandsmatrix")
set Zeile = .Columns(1).Find(what:=von, lookat:=xlwhole)
Set Spalte = .Rows(1).Find(what:=nach, lookat:=xlwhole)
End With
if (Zeile is nothing) or (Spalte is nothing) then
Entfernung  = "Orte nicht gefunden"
Else
Entfernung = Intersect(Zeile.EntireRow, Spalte.EntireColumn).Value
End IF
End Function

Gruß Daniel
Anzeige
AW: Index mit 2 match-Abfragen
29.11.2016 18:41:39
Winfried
Hi Daniel,
jetzt funktioniert es =)
Sitze heute schon 12 Stunden vor Programmcode und seh den Wald vor lauer Bäumen nicht mehr O_o
Danke nochmals.
VG
Winfried

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige