Verwenden eines Zellenwerts als Arbeitsblattname in einer Formel (Microsoft Excel)
Roy hat eine Formel, die auf eine Zelle in einer anderen Arbeitsmappe verweist, als = ‚[http://www.formville.com/C4_free-timesheets.html [Arbeitszeittabelle] s.xlsm] Week01′! L6.
Er möchte, dass die Formel den Namen des Arbeitsblatts (Woche 01) aus einer anderen Zelle übernimmt, damit die Formel allgemeiner wird. Roy fragt sich, wie er die Formel ändern soll, damit der Name des Arbeitsblatts in Zelle B9 verwendet werden kann.
Der einfachste Weg, dies zu handhaben, ist die Verwendung der INDIRECT-Arbeitsblattfunktion. Im Wesentlichen nimmt es eine Zellenadresse und verwendet sie als „Zeiger“ und ruft dann den Wert aus dieser Zelle ab. Sie können beispielsweise Folgendes verwenden:
=INDIRECT(L6)
Dies führt dazu, dass der Wert in Zelle L6 abgerufen und als Zeiger auf das verwendet wird, was Sie wirklich wollen. Wenn also Zelle L6 „A7“ enthält, gibt die Funktion den Wert von allem zurück, was sich in Zelle A7 befindet. Interessanterweise erhalten Sie ein anderes Ergebnis, wenn Sie die Funktion auf diese Weise aufrufen:
=INDIRECT("L6")
Das Ergebnis ist der Inhalt der Zelle L6, anstatt den Inhalt der Zelle L6 als Zeiger zu verwenden.
Mit diesen Informationen können Sie leicht eine Adresse zusammenstellen, die mit der INDIRECT-Funktion ordnungsgemäß funktioniert:
=INDIRECT("'[Timesheets.xlsm]" & K2 & "'!L6")
Diese Formel setzt voraus, dass der Name des gewünschten Arbeitsblatts in Zelle K2 gespeichert ist. Wenn sich in dieser Zelle kein gültiger Arbeitsblattname befindet, gibt die Formel einen # REF-Fehler zurück.
Ein wichtiges „Gotcha“ bei diesem Ansatz ist, dass Sie sicherstellen müssen, dass die Arbeitsmappe (Timesheets.xlsm) geöffnet ist. INDIRECT greift nicht in eine ungeöffnete Arbeitsmappe. Wenn es nicht geöffnet ist, wird anstelle des gewünschten Werts ein # REF-Fehler angezeigt.
Wenn Sie die Formel noch allgemeiner gestalten möchten, können Sie den Arbeitsmappennamen, den Arbeitsblattnamen und die Zellenreferenz wie folgt aus den Zellen in Ihrem Arbeitsblatt abrufen:
=INDIRECT("'[" & K1 & "]" & K2 & "'!" & K3)
In diesem Fall würde K1 den Arbeitsmappennamen (Timesheets.xlsm) enthalten, K2 würde den Arbeitsblattnamen („Week01“) enthalten und K3 würde die gewünschte Zelle („L6“) enthalten.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (6069) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.