ハイパーリンク関数を使用して同じブック内の別のシートのセルを指定する場合、セルを移動してもハイパーリンクはセルに合わせて動的に調整されません。つまり、数式 を使用しています=HYPERLINK("#'Calcs. Form'!D12","1-100")
が、のセルを削除してD11
セルが上に移動しても、ハイパーリンクは に移動するのではなく、 D12 を指定し続けます。Calcs. Form
D12
D11
私が見つけた唯一の解決策は、名前の定義を使用してセルに一意の名前を付け、その名前にハイパーリンクを設定することです。提案はありますか? 数式に何かが足りないのでしょうか?D12
絶対として設定されていません。 ( $D$12
)
答え1
問題は、「D12」がスタンドアロンのセル参照ではなく、文字列内にあることです。次の方法で、これを簡単にアップグレードできます。
=HYPERLINK("#'Calcs. Form'!D"&ROW('Calcs. Form'!D12),"1-100")
関数ROW()
は引き続き「#'Calcs. Form'!D」とともに構築中の文字列に「12」を渡しますが、これは実際のセル参照であるため、たとえば D3 を削除して目的のセルがセル D11 になった場合、数式内の参照も D11 に変更され、ROW()
「12」ではなく「11」が返されるため、ハイパーリンクには正しいセルが伝えられます。
文字列を必要とする関数では、テキストと実際のセル参照を組み合わせるこの手法を使用できます。したがって、単純なハードコードされた文字列を与える代わりに、適応する必要がある部分 (ここでのようにセル/行/列の削除に合わせて調整する) を含む文字列を作成するか、他のセルからの入力を使用して動的なアドレスを作成します (したがって、たとえば「動的な範囲」を作成したり、この場合は両方を作成したりできますINDIRECT()
)。さらに別の用途としては、おそらく異なる月/年だけ、同じように配置されたデータのタブが多数あり、ユーザーが月や年などを入力できるレポート シートが必要な場合があります。これにより、各タブのデータを巨大なIF()
数式でネストすることなく、適切なタブから動的に選択できます。非常に単純な手法ですが、さまざまな場所で役立ちます。
答え2
数式に TEXT として変更される可能性のあるセル参照を挿入する方法の 1 つ:
「短縮」形式:
="The cell referenced is"&cell(D12;"address")&" and it contains '"&D12&"'"
同じ:
=CONCATENATE("The cell referenced is";cell("address"D12);" and it contains '";D12;"'")
(未テストの式- )
;
パラメータ区切り文字として を使用することに注意してください。これは、,
たとえば英語ロケールでも同様であり、おそらく他のロケールでも同様です。