Wenn ich die Hyperlink-Funktion verwende, um auf eine Zelle auf einem anderen Blatt in derselben Arbeitsmappe zu zeigen, passt sich der Hyperlink beim Verschieben der Zelle nicht dynamisch an. D. h., ich verwende die Formel =HYPERLINK("#'Calcs. Form'!D12","1-100")
, aber wenn ich die Zelle D11
in lösche Calcs. Form
und meine D12
Zelle nach oben verschoben wird, zeigt mein Hyperlink immer noch auf D12, anstatt nach oben auf zu verschoben zu werden D11
.
Die einzige Lösung, die ich gefunden habe, besteht darin, der Zelle tatsächlich einen eindeutigen Namen zu geben, indem ich den Namen definiere und einen Hyperlink auf den Namen richte. Vorschläge? Übersehe ich einfach etwas in meiner Formel? Ich habe den Wert nicht D12
als absolut festgelegt. ( $D$12
)
Antwort1
Das Problem besteht darin, dass sich „D12“ in einem String befindet und nicht in einer eigenständigen Zellreferenz. Mit dem folgenden Ansatz können Sie das schnell verbessern:
=HYPERLINK("#'Calcs. Form'!D"&ROW('Calcs. Form'!D12),"1-100")
Die ROW()
Funktion übergibt noch immer „12“ an die Zeichenfolge, die zusammen mit „#'Calcs. Form'!D“ erstellt wird, aber jetzt handelt es sich um einen tatsächlichen Zellbezug. Wenn Sie also beispielsweise D3 löschen und die gewünschte Zelle zu Zelle D11 wird, ändert sich der Bezug in der Formel ebenfalls zu D11 und ROW()
gibt „11“ und nicht „12“ zurück, sodass dem Hyperlink die richtige Zelle mitgeteilt wird.
Sie können diese Technik zum Kombinieren von Text und tatsächlichen Zellreferenzen in jeder Funktion verwenden, die eine Zeichenfolge benötigt. Anstatt also eine einfache, fest codierte Zeichenfolge zu verwenden, erstellen Sie eine Zeichenfolge mit den Teilen, die adaptiv sein müssen (Anpassung an Löschungen von Zellen/Zeilen/Spalten wie hier), oder verwenden Eingaben aus anderen Zellen, um eine dynamische Adresse zu erstellen (so können Sie beispielsweise „dynamische Bereiche“ erstellen, oder beides in diesem Fall und wenn INDIRECT()
Sie möglicherweise eine Referenz dynamisch erstellen möchten). Eine weitere Verwendung ist, dass Sie möglicherweise viele Registerkarten mit identisch angeordneten Daten haben, vielleicht nur für unterschiedliche Monate/Jahre, und ein Berichtsblatt haben möchten, in das ein Benutzer einen Monat oder ein Jahr oder was auch immer eingeben kann, und Daten aus der richtigen Registerkarte werden dadurch dynamisch ausgewählt, ohne dass Sie IF()
für jede Registerkarte eine Monsterformel verschachteln müssen. Eine sehr einfache Technik, aber an Millionen Stellen nützlich.
Antwort2
Eine Möglichkeit, einen möglicherweise veränderlichen Zellbezug als TEXT in eine Formel einzufügen:
Die „kurze“ Form:
="The cell referenced is"&cell(D12;"address")&" and it contains '"&D12&"'"
Das gleiche:
=CONCATENATE("The cell referenced is";cell("address"D12);" and it contains '";D12;"'")
(Ungetestete Formeln- )
Beachten Sie die Verwendung von ;
„als Parametertrennzeichen“, dies wird ,
beispielsweise im englischen Gebietsschema und wahrscheinlich auch in anderen der Fall sein.