PDA

Vollständige Version anzeigen : Sverweis - Variable Matrixangaben


svenmarkus
05.05.2009, 12:40
Wie kann ich den Pfad der Matrix variieren?

Liebe Leserinnen und Leser,
Liebe Userinnen und User,

normalerweise schreibt man eine Matrixangabe so:
SVERWEIS(A1;'G:\MATRIX1\Matrixdatenbank\[Matrix.xlsm]Matrix'!$A$1:$ZA$100;2)

Jedoch möchte ich, dass sich die Matrix Variable ist, wie z.B.

SVERWEIS(A1;ZZ1;2)

Inhalt der ZZ1-Zelle:

WENN(A1=1;"'G:\MATRIX1\Matrixdatenbank\[Matrix1.xlsm]Matrix1'!$A$1:$ZA$100";
WENN(A1=2;"'G:\MATRIX2\Matrixdatenbank\[Matrix2.xlsm]Matrix2'!$A$1:$ZA$100";
WENN(A1=3;"'G:\MATRIX3\Matrixdatenbank\[Matrix3.xlsm]Matrix3'!$A$1:$ZA$100";0)))

Jedoch kann das SVERWEIS die MatrixPfadangaben nicht hineinlesen. Gibt also ein Fehler aus.

Wie kann ich den Pfad der Matrix variieren?

heebu
05.05.2009, 13:02
Hallo

Schreib doch deine Formel genau so: wenn(A1=1;Sverweis(A1;'G:\MATRIX1\Matrixdatenbank\[Matrix1.xlsm]Matrix1'!$A$1:$ZA$100";wenn(Sverweis.....
uns so weiter bis du alle Werte abgefragt und die entsprechende Sverweise abgearbeitet hast.

Gruss heebu

NoNet
05.05.2009, 13:06
Hallo Sven,

das kann leider nur theoretisch funktionieren, jedoch nicht in der Praxis !

Grundsätzlich könntest Du die "Matrix" folgendermassen zusammenbasteln :

="'G:\MATRIX1\Matrixdatenbank\["& INDEX({"Matrix1"."Matrix2"."Matrix3"};VERGLEICH(A1;{1.2.3};0)) &"]"& INDEX({"Matrix1"."Matrix2"."Matrix3"};VERGLEICH(A1;{1.2.3};0))&"'!$A$1:$ZA$100"

Da ich annehme, dass "Matrix1", "Matrix2" etc. nicht wirklich so heissen, habe ich diese Funktion so variabel gehalten und die Ziffern 1,2,3 absichtlich NICHT in den Matrixnamen eingebaut !

Mit diesem MatrixString könnte man nun theoretisch per INDIREKT(...) auf die entsprechende Matrix (externe Datei) zugreifen :
=SVERWEIS(A1;MatrixString;2)

Allerdings muss bei Verwendung der Funktion INDIREKT die betreffende Mappe bereits geöffnet sein, da ansonsten ein #BEZUG!-Fehler resultiert !

Suche auch mal nach INDIRECT.EXT hier im Forum !