Ich erstelle eine Arbeitsmappe (Tabellenkalkulation), die Arbeitsblätter enthält, die nach Monaten beschriftet sind, z. B. „Jan-12“, „Dez-12“ usw. Ich brauche SVERWEIS, um die Suche basierend auf dem Namen eines beliebigen Arbeitsblatts ändern zu können, ohne jedes Mal die Formel ändern zu müssen. Ich habe diese Antwort gefunden und sie funktioniert hervorragend für SVERWEIS-Funktionen, die sich in verschiedenen Arbeitsmappen befinden, die ich auch habe, aber ich kann sie nicht in derselben Arbeitsmappe zum Laufen bringen.
=VLOOKUP(A1, INDIRECT(CONCATENATE("'[Datafile.xlsx]",B1,"'!$A1:F500")), 3, False)
Antwort1
Erstens,
CONCATENATE(
Sache 1,
Sache 2,
Sache 3)
kann abgekürzt werden
Sache 1
&
Sache 2&
Sache 3
Sie bedeuten dasselbe, aber die zweite Form nimmt (offensichtlich) weniger Platz ein, sodass sie für manche Leute leichter zu lesen sein könnte.
Ihre Frage scheint etwas vage zu sein – Sie haben nicht gesagt, wann Sie auf dieselbe Arbeitsmappe verweisen möchten und wann Sie auf eine andere zugreifen möchten. Füllen Sie also die Lücke aus. Und da Sie den VLOOKUP
Teil anscheinend zum Laufen gebracht haben, läuft die Frage auf den Referenzierungsteil hinaus. Mit anderen Worten, wie passt man
INDIRECT(CONCATENATE("'[Datafile.xlsx]", B1, "'!$A1:F500"))
was wir abkürzen können zu
INDIRECT("'[Datafile.xlsx]" & B1 & "'!$A1:F500")
Also versuche
INDIRECT("'" & IF(
Zustand, "", "[Datafile.xlsx]") & B1 & "'!$A1:F500")
WoZustandist die Bedingung, unter der Sie die aktuelle Datei verwenden möchten. In Worten verketten Sie ein einfaches Anführungszeichen ( '
), bedingt den Arbeitsmappennamen (in Klammern)oder nicht, dann der Blattname (ich nehme an, das ist es, was in steht B1
), ein zweites Anführungszeichen, ein Ausrufezeichen und der Zellbereich.