自分方位研究所

日々の活動記録

Excel/HYPERLINK関数/同一シート内のリンク/行挿入で、リンク先セル位置がズレないようにする

年末の帰省に備え、持ち物リストをExcelで作っています。

衣類、文具などで分類して、漏れのないようにしたいのですが、品目の数が多くなると、スクロールしないと見れないので、HYPERLINK関数を使って、各種別へジャンプできるようにしています。

目次部分は常に表示させておきたいので7行目で「ウィンドウ枠の固定」

また、用意する着替えの数などの参考にするため、宿泊日数を表示するようにしました。DAY関数。=DAY(終了日,開始日)
(セルH11の計算式。「泊」の文字は、セルの書式設定/表示形式/ユーザー定義/ # "泊" で設定)

HYPERLINK関数について

最初、「 =HYPERLINK("#B28","文具") 」 というふうに式を作って、各見出しに飛ぶようにしましたが、「文具」よりも上のセルで、行の挿入、削除すると、参照先セルが実際のセルとズレてしまいます。(リンクの参照先はB28を指したまま)。そのため、式を再度新しいセルに変更しなければなりません。

これは「 =HYPERLINK("#B28","文具") 」の引数”#B28"が、文字列で指定されているため。常にリンク先はセルB28を指しています。

これでは不便なので、行の挿入/削除に影響されない方法で設定しました。

セルB28の 行部分「28」を文字列指定ではなく、行の増減に対応した形で指定してやります。これを実現するには、ROW関数を使います。

ROW関数は、現在の行番号を取得してくれます。
計算式「=ROW(B28)」 をセルに入力すると 行番号28が表示されます。

これを「 =HYPERLINK("#B28","文具") 」に組み込むと

「=HYPERLINK("#B"&ROW(B28),"文具")」

これで、行の増減に応じて、参照先も追従してくれます。

この目次方式を使うと、PCのプログラム起動や任意のフォルダを開くなどランチャーとして使うこともできます。