Hallo VBA Cracks,
ich hätte so gerne eine vermutlich ganz einfache VB-Funktion, die folgendes kann:
Gegeben ist eine standardisierte "Datenbanktabelle": In der ersten Zeile stehen die Feldnamen, in der ersten Spalte steht ein eindeutiger Schlüssel für die Datensätze.
Die Funktion soll dann einfach aus der Datenbanktabelle genau ein Feld finden. Als Parameter kommen die Datenbanktabelle, Feldname und Schlüssel.
Ich weiß, dass das sehr einfach mit INDEX und Vergleich geht (s.u.), aber das ist, besonders wenn verschachtelt angewendet, sehr unübersichtlich.
Beispiel:
nr |
Name |
Vorname |
Telefon |
|
|
1 |
Gallier |
Asterix |
123 |
|
|
2 |
Gallier |
Obelix |
124 |
|
|
3 |
Gallier |
Idefix |
125 |
|
|
4 |
Cäsar |
Julius |
555123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nr |
3 |
|
|
|
|
Feld |
Vorname |
|
|
|
|
|
|
|
|
|
|
Ergebnis |
Idefix |
|
|
|
|
|
|
|
|
|
|
Ist |
=INDEX(A1:D5;VERGLEICH(C8;A2:A5;0)+1;VERGLEICH(C9;A1:D1;0)) |
|
Wunsch |
=get(teldb;3;"Vorname") |
|
|
|
Einfach ausgedrückt: Ich hätte gerne eine Funktion get(teldb;row;col), die den obigen Ist-Zustand mit INDEX und VERGLEICH abbildet. (Und dabei natürlich auch gleich richtig berücksichtigt, wo die Feldnamen (Zeile 1 von teldb) und die Schlüssel (Spalte 1 von teldb) sich befinden.
teldb ist ein benanntes Array (hier A1:D5)
geht das ?
|