0Pricing
Excel Formulas Academy · レッスン

INDEXで値を取り出す

行と列の位置を指定して、範囲から値を返します。

「INDEXで値を取り出す」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。

INDEX関数を知る

INDEX関数は、「範囲内の特定の位置にはどの値があるか」というシンプルな質問に答えます。セルの範囲と行番号を指定すると、その位置にある値を返します。

範囲を番号付きのリストだと考えてみてください。INDEXは「3番目の項目を返してください」と指定するようなものです。まだ名前で検索するわけではなく、位置を使って値を取り出すだけです。

そのため、値がどこにあるか分かっている場合、INDEXは値を取得するのに最適な関数です。

基本構文

INDEXの最も基本的な形式では、2つの情報を指定します。

  • array — 調べるセルの範囲
  • row_num — その範囲から返す行

=INDEX(B2:B6, 3)は、「範囲B2:B6から、3番目の位置にある値を返す」という意味です。B2:B6に名前が入っている場合は、3番目の名前が返されます。

行番号はシートの上端からではなく、範囲の内側で数えます。

=INDEX(B2:B6, 3)

範囲内での数え方

最初はここで混乱しやすいものです。範囲が2行目から始まる場合、2行目のセルは2ではなく位置1です。

B2:B6にApple、Banana、Cherry、Date、Figが入っているとします。位置1はApple(セルB2)、位置2はBanana、位置3はCherryです。

したがって、=INDEX(B2:B6, 3)はCherryを返します。位置は、指定した範囲の先頭を基準にした相対的なものです。

=INDEX(B2:B6, 3)

実例

A列に従業員名が並んでいて、そのうち4番目の名前を取得したいとします。データはA2:A10に入っています。

=INDEX(A2:A10, 4)と入力します。INDEXはA2から下方向に4つ分の位置を数え、A5の名前を返します。

名前そのものを入力していないことに注目してください。INDEXは値が何かではなく、どこにあるかだけを扱います。この位置を基準にする性質が、位置を検索してくれる関数と非常に相性がよい理由です。

=INDEX(A2:A10, 4)

列番号を追加する

範囲が複数の列にまたがる場合、INDEXにはより完全な2次元形式もあります。

=INDEX(array, row_num, column_num)

これで、範囲内の行と列の両方を指定します。たとえば、=INDEX(A2:C10, 4, 2)は、その範囲の4行目、2列目にある値を返します。

どちらの番号も、指定した範囲の左上を起点に数えます。

=INDEX(A2:C10, 4, 2)

表内のセルを選択する

A2:C5に小さな表があり、A列がRegion、B列がProduct、C列がSalesだとします。3番目のデータ行にあるSalesの値を取得したいとします。

Salesは3列目で、データの3行目は位置3です。そこで、=INDEX(A2:C5, 3, 3)と入力します。

INDEXはその範囲の3行目、3列目に移動し、そのSalesの値だけを返します。1つの数式で、行と列の交点を正確に指定できます。

=INDEX(A2:C5, 3, 3)

行全体または列全体を返す

番号の一方を0に設定すると(多くの場合は省略しても)、INDEXは1つのセルではなく、行全体または列全体を返します。

=INDEX(A2:C5, 0, 2)は、その範囲の2列目全体を返します。最新のスプレッドシートでは、複数のセルにスピルします。

1つの値だけでなく、列全体を別の関数に渡したい場合に便利です。

=INDEX(A2:C5, 0, 2)

単一列でのINDEX

範囲が1列だけの場合は、列の引数を完全に省略できます。INDEXは列1を前提にします。

したがって、C2:C20に価格が入っている場合、=INDEX(C2:C20, 7)は7番目の価格を返します。列番号は必要ありません。

同様に、E1:J1のように値が1行に並んでいる場合、=INDEX(E1:J1, 1, 4)はその行の左から4番目の値を返します。INDEXはデータの形状に合わせて柔軟に動作します。

=INDEX(C2:C20, 7)

位置指定がハードコードより優れている理由

=A5と直接入力すればよいのではないか、と疑問に思うかもしれません。INDEXの強みは、位置に固定された数値ではなく、計算結果やセル参照を指定できることです。

たとえば、=INDEX(A2:A100, D1)は、D1に入っている行番号に対応する値を返します。D1を5に変更するとINDEXは5番目の項目を返し、20に変更すると20番目の項目を返します。

これにより、INDEXは単なる珍しい機能ではなく、動的な検索ツールになります。

=INDEX(A2:A100, D1)

実践的な使用例

A2:A11にランキングがあり、F1のドロップダウンで1から10までの順位を選べるとします。

=INDEX(A2:A11, F1)と入力します。F1で1を選ぶと1位のプレイヤーが表示され、3を選ぶと3位のプレイヤーが表示されます。

数式は変わらず、入力だけが変わります。これは、これから作成する柔軟な検索の基本となる考え方です。

=INDEX(A2:A11, F1)

範囲外の位置に注意する

存在しない位置をINDEXに指定すると、#REF!エラーが返されます。5個の項目からなる範囲で、位置6を指定すると失敗します。

たとえば、=INDEX(A2:A6, 9)は、5行の範囲に9番目の項目がないため、#REF!を返します。

位置番号は範囲の大きさ以内に収めてください。後でMATCHから位置を渡す場合、この問題はほとんど起きませんが、このエラーを認識しておくとよいでしょう。

=INDEX(A2:A6, 9)

理解度チェック

INDEXが位置をどのように数えるか、理解度を確認しましょう。

まとめ:INDEXは位置で値を返す

INDEXは、範囲内の位置によって値を取得することを学びました。

  • 1列または1行の場合は=INDEX(array, row_num)
  • 2次元の範囲の場合は=INDEX(array, row_num, column_num)
  • 位置は範囲の先頭から数えるため、最初のセルは位置1
  • 位置には数値、セル参照、または計算結果を指定できるため、INDEXは動的に動作する

次は、位置を自動的に検索してくれる関数、MATCHについて学びます。

=INDEX(A2:A11, F1)

よくある質問

「INDEXで値を取り出す」レッスンは無料ですか?

はい。「INDEXで値を取り出す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。

「INDEXで値を取り出す」で何を学びますか?

行と列の位置を指定して、範囲から値を返します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Excel Formulas Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「INDEXで値を取り出す」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このExcel Formulas Academyレッスンでコードを書いて実行できますか?

はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. INDEXで値を取り出す
  2. MATCHで位置を見つける
  3. INDEXとMATCHを組み合わせる
  4. INDEX-MATCHがVLOOKUPより優れている理由
← Excel Formulas Academyに戻る