Excel 最終行の1つ下に飛ぶリンクの作り方【関数のみ】

Excel 最終行の1つ下に飛ぶリンクの作り方【関数のみ】 Excel

はじめに:Web版Excelには「VBA」がない!

無料のWeb版Excel、便利ですよね!でも、一つ大きな弱点があります。

それは、VBA(マクロ)やOfficeスクリプト(有料プランでは一部可)といった「自動化ツール」が使えないこと。

例えば、家計簿のようなデータベースにデータをどんどん追記していくとき、VBAが使えれば「ボタン一つで最終行にジャンプ!」「入力フォームでデータベースの最終行以下に書き込む!」なんてことができますが、Web版ではそうはいきません。

データが増えるたびに、ひたすらマウスホイールを転がして、最後の入力セルを探す…なんて、不便ですよね。

Web版Excelでも、ボタン一つで、入力したいセルに一瞬でジャンプしたい!」

そんなあなたの夢、HYPERLINK関数が叶えてくれます!

今回の記事は、このHYPERLINK関数と、配列計算のロジックを組み合わせて、「表の最終行のすぐ下にジャンプする」動的なリンクを作成する、超実用的なテクニックです。

途中に空白行があっても、ちゃんと「真の最終行」を見つけ出しますよ!

本記事では、無料のWeb版Excelを使用して検証および画像の作成を行っています。Windowsはもちろん、MacやLinuxの方もブラウザさえあれば挑戦できます!

準備:舞台となる家計簿とUI

何事も、まずは準備から。

まっさらなシートのA1セルを起点に、以下のような家計簿リストを作成してください。

={"日付","カテゴリ","金額","店舗";"2025/11/4","酒",620,"アークス";"2025/11/4","外食",700,"宮越屋";"2025/11/4",,,;"2025/11/6","交通費",230,"市電";"2025/11/5","食費",1670,"北海市場";,,,;"2025/11/10","消耗品",400,"サツドラ";"2025/11/10","酒",590,"セコマ"}

Excelの説明画像

この表には、実務でよくある「空白行」(4行目、7行目)という罠が仕掛けられています。

次に、UIの工夫です。「表示」タブから「1行目を固定」を選択し、見出し行が常に表示されるようにしましょう。

Excelの説明画像

そして、今回作成するジャンプリンクは、この固定した1行目のE1セル、F1セル…に入力していきます。

こうすれば、データが1000行に増えても、リンクは常に画面上部に表示され、いつでもクリックできますよね!

Excelの説明画像

HYPERLINK関数の基本

まずは、主役となるHYPERLINK関数の基本を覚えましょう。

=HYPERLINK(リンク先, [別名])

リンク先: ジャンプしたい場所を指定します。

  • Webサイトなら: "https://excel-himatsubushi.com/"
  • 同一シート内のセルなら: "#A2""#E1" のように、"#"(ハッシュマーク)に続けてセル番地を指定します。

[別名]: セルに実際に表示する文字列です。(例: “最終行の下へ”, “空白へ”)

【Web版Excelの注意点】
ローカル版のExcelでは、=HYPERLINK("#A1,A3,B2")のように、複数のセルをカンマで区切って一度に選択させるジャンプも可能ですが、残念ながらWeb版Excelではこの機能はサポートされておらず、エラーになります。今回は、単一のセルへジャンプする方法を探求します。

【パフォーマンスのためのヒント】
今回の数式では、A:Aのように列全体を指定すると、処理が重くなる可能性があります。ロジックの理解を最優先し、また実用的な範囲として、今回は「1000行目まで」を対象(A1:D1000)として数式を組んでいます。


4つの「ジャンプリンク」を実装しよう!

1. A列基準で、最終行の下へジャンプ (E1セル)

考えかた

まずは、主要な列(今回はA列の日付列)だけを見て、その列でデータが入力されている一番下のセルの、さらに一つ下へジャンプするリンクを作ります。

数式と解説

=HYPERLINK("#A"&XMATCH(TRUE,A1:A1000<>"",0,-1)+1,"最終行の下へ(A列基準)")

1. A1:A1000<>"": まず、A1からA1000セルが「空白ではない」かどうかを判定し、{TRUE;TRUE;...;FALSE;...}というTRUE/FALSEの配列を作ります。

Excelの説明画像

2. XMATCH(TRUE, ..., 0, -1): XMATCH関数で、この配列から「TRUE」を探します。

 ・0(一致モード): 完全一致で探します。
 ・-1(検索モード): これが最重要!リストの末尾から先頭に向かって(逆順に)検索します。

 これにより、空白行に惑わされず、A列で最後に入力されたセルの行番号(今回は9行目)「9」が返されます。

Excelの説明画像

3. ... + 1: 取得した最終行番号「9」に「1」を足して、次に入力すべき行番号「10」を計算します。

4. "#A" & 10: 文字列を連結して、ジャンプ先のセル番地 "#A10" を作ります。

Excelの説明画像

5. HYPERLINK(...): 最後に、HYPERLINK関数が、"#A10"へのリンクを「最終行の下へ(A列基準)」という名前で生成します。

Excelの説明画像

2. 表全体で、真の最終行の下へジャンプ (F1セル)

検証のために、表の10行目にA列(日付)のみ空白のデータを挿入しています。

考えかた

アプローチ1には弱点があります。

もし、A列が空白で、C列やD列にだけデータが入力されていた場合、A列基準ではそれを見逃してしまいます。

Excelの説明画像

意図的にA列を空白にした場合など、A10セルではなく、A11セルにジャンプしたい場面を想定しています。

Excelの説明画像

そこで、A列からD列の「すべて」を見て、表全体の「真の最終行」の次(のA列)へジャンプする、より強力なリンクを作ります。

数式と解説

=HYPERLINK("#A"&MAX((A1:D1000<>"")*ROW(A1:D1000))+1,"最終行の下へ(全体基準)")

1. (A1:D1000<>""): A1:D1000の範囲で「空白ではない」セルを判定し、1000行4列のTRUE/FALSEの配列を作ります。

Excelの説明画像

2. ROW(A1:D1000): {1;2;3;...;1000} という、縦一列の行番号配列を作ります。

3. (...) * (...): この2つの配列を掛け算します。

Excelのブロードキャスト機能により、TRUE(1)の場所はその行番号に、FALSE(0)の場所は0に変換された、1000行4列の配列が生成されます。
(例: 10行目 → {0,10,10,10}、 7行目(空白) → {0,0,0,0}

Excelの説明画像

4. MAX(...): この巨大な配列の中から、MAX関数で最大の数値を引きます。これが、A~D列のいずれかにデータが入力されている「真の最終行番号」(今回は「10」)です。

5. ... + 1: 「10」に1を足して、次に入力すべき行番号「11」を計算します。

6. HYPERLINK("#A"&11, ...): 最後に、A列の10行目(#A11)へのリンクを生成します。

これなら、どの列にデータが入力されていても安心ですね!

Excelの説明画像

3. 表の先頭(A2)へジャンプ (G1セル)

考えかた

データが増えて1000行目までスクロールした後、一瞬で表の「先頭」に戻りたくなる時もありますよね。

そのためのリンクです。

数式と解説

=HYPERLINK("#A2","先頭へ")

Excelの説明画像

「あれ? 先頭ってA1セルじゃないの?」

良い質問です!

今回は、UIの工夫として「1行目」をウィンドウ枠で固定しています。

この状態で#A1にジャンプしても、A1セルは既に画面上部に固定されているため、Excelは「もう見えてるよ」と判断し、画面がスクロールしてくれません

Excelの説明画像


そこで、あえて固定行の「すぐ下」であるA2セルを指定します。

こうすることで、A2セルが画面の先頭に来るように、Excelがビューをスクロールしてくれるのです!

これは地味ですが、非常に重要なテクニックです。

4. 表の中の「最初の空白行」へジャンプ (H1セル)

考えかた

最後は、最も複雑なロジックです。

途中で入力が抜けている空白行(今回なら4行目)を上から探し、その行の先頭(A4)へジャンプするリンクです。

A4セルが入力されていれば、今度はその右隣の列、B4セルへジャンプします。

もし空白行がなければ、「最終行の下へ」のリンクに自動で切り替わります。

数式と解説

=LET(
a,MAX((A1:D1000<>"")*ROW(A1:D1000)), b,MIN(IF(ISBLANK(INDIRECT("A1:D"&a)),SEQUENCE(a))), c,MIN(IF(ISBLANK(INDIRECT("A"&b&":D"&b)),COLUMN(A1:D1000))), IFERROR(HYPERLINK("#"&ADDRESS(b,c),"空白へ"),HYPERLINK("#A"&a+1,"空白なし"))
)

この数式は、LET関数を使って、計算を「a」「b」「c」の3段階に分けています。

1. a,MAX((A1:D1000<>"")*ROW(A1:D1000))

・まず、アプローチ2と同じ方法で、表全体の「真の最終行番号」を計算し、「a」という名前を付けます。(以下の表なら「9」)

Excelの説明画像

2. b,MIN(IF(ISBLANK(INDIRECT("A1:D"&a)),SEQUENCE(a)))

INDIRECT("A1:D"&a): INDIRECT("A1:D9")という参照(データの存在する範囲)を作ります。
ISBLANK(...): A1:D9の範囲で、空白セルかどうかを判定します(4行目と7行目がTRUEになる)。

Excelの説明画像


SEQUENCE(a): {1;2;...;9}という行番号配列を作ります。
IF(..., SEQUENCE(a)): もしセルが空白なら「その行番号」を、そうでなければFALSEを返します。

Excelの説明画像

MIN(...): この結果から「最小値」を探します。これにより、「最初に出現する空白行の行番号」(今回は「4」)が特定され、「b」という名前が付きます。

Excelの説明画像

3. c,MIN(IF(ISBLANK(INDIRECT("A"&b&":D"&b)),COLUMN(A1:D1000)))

INDIRECT("A"&b&":D"&b): INDIRECT("A4:D4")という参照(最初に見つかった空白行)を作ります。
ISBLANK(...): この行(A4:D4)が空白かどうかを判定します。({TRUE,TRUE,TRUE,TRUE}

Excelの説明画像

COLUMN(A1:D1000): {1,2,3,4}という列番号の配列を作ります。
IF(..., COLUMN(...)): もしセルが空白なら「その列番号」を返します。
MIN(...): この結果から「最小値」を探します。

Excelの説明画像

これにより、「その空白行の中で、一番左にある空白セルの列番号」(今回は「1」)が特定され、「c」という名前が付きます。

4. IFERROR(HYPERLINK("#"&ADDRESS(b,c),"空白へ"), ...)

ADDRESS(b,c): ADDRESS(4, 1)となり、セル番地の文字列「$A$4」を生成します。

Excelの説明画像


HYPERLINK("#$A$4", "空白へ"): A4セルへのジャンプリンクが完成します!
IFERROR(..., HYPERLINK("#A"&a+1,"空白なし")): もし、ステップ2のMIN関数がエラーになった場合(=空白行が一つも見つからなかった場合)、IFERRORがそれをキャッチし、代わりにアプローチ2と同じ「最終行の下へ」ジャンプするリンク(”空白なし”という名前)を表示させます。

Excelの説明画像

A4セルに何かしらを入力すると、次のジャンプ先はB4になります。

まとめ:関数が、VBAの代わりになる!

VBAやOfficeスクリプトといった自動化ツールが使えない無料のWeb版Excelでも、HYPERLINK関数と配列計算のロジックを組み合わせることで、こんなにも便利な「ナビゲーション」機能が実装できるのです。

特に、最後の「空白セルを探す」ロジックは非常に複雑ですが、XMATCHMAX(IF…)、INDIRECTADDRESSといった、重要な関数ロジックの寄せ集めになっています。

これらのテクニックを使えば、データ入力の効率が格段に上がるはずです。

Web版Excelでデータを扱うすべての皆さんに、この記事が届けば幸いです!

タイトルとURLをコピーしました