Documentation/Calc 関数/INDEX

    From The Document Foundation Wiki
    This page is a translated version of the page Documentation/Calc Functions/INDEX and the translation is 100% complete.
    Other languages:


    Function name:

    INDEX

    Category:

    Spreadsheet

    Summary:

    最も単純な形式では、 INDEX を使用して、データテーブル内の相対的な行番号と列番号で指定された特定のセルの値を取得できます。 状況に応じて、 INDEX を使用して、指定した行と列の交点にあるセルの参照を決定することもできます。

    INDEX は、連続していない複数のセル範囲の値を検索するために使用できる強力な関数であり、配列コンテキストで使用して複数の値を返すことができます。 Flexibility is increased when INDEX を MATCH 関数と組み合わせて使用すると、柔軟性が向上し、入力データの変更に対して、より適切な戻り値を得る数式を作ることができます。

    Syntax:

    INDEX 関数の一般的な構文は、次のとおりです。

    • INDEX(参照[; 行番号[; 列番号[; 範囲]]])

    最初の引数に 1 列しかない範囲の特殊なケースでは、次の簡略化された構文を使用できます。

    • INDEX(参照; 行番号)

    最初の引数に 1 行しかない範囲の特殊なケースでは、次の代替構文を使用できます。

    • INDEX(参照; 列番号)

    Returns:

    技術的には、INDEX はセル参照を返します。 ただし、使用する数式によっては、戻り値をデータ値 (入力データセットによって型が決定される) またはセル参照として使用できます。

    Arguments:

    参照 は、入力データテーブルが占めるセルの範囲を指定する参照リストです。次のいずれかの形式をとります。

    • 1つのセル範囲 (例えば、A1:E10)。
    • 複数のセル範囲を1つの引数として渡すには、=INDEX((A1:B6; C2:D7; E3:F8); …) のように、セル範囲をかっこで囲んで指定します。 この場合、Calcは、=INDEX((A1:B6~C2:D7~E3:F8); …) のように、チルダ参照連結演算子を使用して関数呼び出しを再フォーマットします。 または、=INDEX(A1:B6~C2:D7~E3:F8; …) のように、チルダ参照連結演算子をかっこなしで直接使用することもできます。
    • データベース範囲の名前で参照される単一のセル範囲 (メニューバーの データ ▸ 範囲の指定 を選択して定義)。
    • 名前付き範囲の名前によって参照される1つ以上のセル範囲。メニューバーの シート ▸ 名前付きの範囲または式 ▸ 指定 を使用して定義された名前付き範囲は、[名前を定義]ダイアログの 参照範囲または数式 フィールドでチルダ参照連結演算子を使用することにより、複数の領域を構成するように設定できます。
    • インライン配列 (例えば、 {1, 2, 3; 4, 5, 6})

    行番号 は、負でない整数値、またはそのような値を含むセルへの参照であり、データテーブルの左上からの必要な行オフセットです。 配列数式の場合、 行番号 引数をインライン配列として入力すると、複数の値を取得できます。 配列コンテキストでは、行番号 引数を省略するか (2つの連続するセミコロンを使用)、特別な値 0 (ゼロ)に設定すると、指定した列のすべての行の値が返されます。

    列番号 は、データテーブルの左上からの必要な列オフセットである、負でない整数値、またはそのような値を含むセルへの参照です。 配列数式の場合、 列番号 引数をインライン配列として入力すると、複数の値を取得できます。 配列コンテキストでは、 列番号 引数を省略するか (連続する2つのセミコロンを使用) 、特別な値 0 (ゼロ)に設定すると、指定した行のすべての列の値が返されます。

    範囲 は、正の整数値 (デフォルトは1)、またはそのような値を含むセルへの参照であり、参照 引数が複数の領域で構成されている場合に使用されるサブ範囲を示します。 例えば、 参照A1:B6~C2:D7~E3:F8 に設定されている場合、 Range to 1 for cell range A1:B6, set Range to 2 for cell range C2:D7, and set Range to 3 for cell range E3:F8. 配列数式の場合、 範囲 引数をインライン配列として入力すると、複数の値を取得できます。


    たとえば、ReferenceA1:B6~C2:D7~E3:F8 に設定されている場合、セル範囲 A1:B6 では 範囲 を1に設定し、セル範囲 C2:D7 では 範囲 を 2 に設定し、セル範囲 E3:F8 では 範囲 を 3 に設定します。

    次の状況が発生する可能性があります。

    • 行番号、'列番号範囲 のいずれかが数値でない場合、INDEX は #VALUE! エラーを返します。
    • 行番号、'列番号範囲 が整数以外の値の場合、INDEX は整数に切り捨てます。
    • 切り捨て後、行番号 または 列番号 が負の値の場合、INDEX は無効な引数エラー (エラー:502) を返します。
    • 切り捨て後、行番号範囲 引数によってインデックス付けされたセル範囲の行数より大きい場合、INDEX は無効な引数エラー (エラー:502) を返します。
    • 切り捨て後、列番号範囲 引数によってインデックス付けされたセル範囲の列数より大きい場合、 INDEX は無効な引数エラー (エラー:502) を返します。
    • 切り捨て後、範囲 が 1 未満であるか、参照 で定義されているセル範囲の数を超えている場合は、INDEX は #REF! エラーを返します。

    Additional details:

    • INDEX は、配列数式で使用できます。たとえば、Enter キーを押すのではなく、Ctrl + ⇧ Shift + ↵ EnterCtrl+Shift+Enter ("CSE") を使用して、配列数式 { =INDEX($A$1:$D$4; {1;3}; 2) } を入力します。 2つの値が返されます。 セル B1 の値は数式セルに表示され、セル B3 の値は数式セルの下のセルに表示されます。
    • インライン配列値の場合、数式で使用されるそれぞれの区切り文字は、ツール ▸ オプション ▸ LibreOffice Calc ▸ 数式区切り 領域で設定できます。

    Examples:

    最初の一連の例題では、次のデータテーブルを使用します。

    A B C D
    1
    2 4 5 6
    3 red green blue
    4 TRUE FALSE TRUE
    Formula Description Returns
    =INDEX(B2:D4; 1; 1) セル B2 のデータを返します。引数 行番号 および 列番号 は、指定したセル範囲を基準にしたオフセットであり、スプレッドシートを基準にしたオフセットではありません。 4
    =INDEX(DataTable; G1; G2)

    ここで、 DataTable はセル範囲 B2:D4 を含むデータベース範囲の名前で、セル G1 と G2 の両方に数値 2 が含まれます。

    DataTable 内の 2 番目の行と 2 番目の列の交点であるセル C3 の値を返します。 green
    =INDEX(C3:D4; 2; 2) セル D4 の値を返します。 TRUE
    =INDEX(B2:B4; 3) 3 番目のセル B4 の値を返します。単一列のデータセットに使用できる簡略化された構文を使用します。 TRUE
    =INDEX(B3:D3; 2) 2 番目のセル C3 の値を返します。単一行のデータセットで使用できる簡略化された構文を使用します。 green
    =INDEX(B2:D4; 2; 0) }

    CSE を使用します。

    入力データの 2 番目の行から 3 つの値の行を返します。

    文字列 "red" は数式のセルに表示されます。"green" は右側のセルに表示され、"blue" はその右側のセルに表示されます。

    red green blue
    =INDEX(B2:D4; 0; 2) }

    CSE を使用します。

    入力データの 2 番目の列から 3 つの値の列を返します。

    数式のセルには数値 5 が表示されます。その下のセルには "green" が表示され、その下のセルには数値 0 (ゼロ)が表示されます。 このシナリオでは、元のブール値 FALSE が数値に変換されます。

    5
    green
    0
    =INDEX(B2:D4; {2; 3}; 3) }

    CSE を使用します。

    参照範囲の 3 番目の列の 2 番目と 3 番目の値の列、および入力データのセル D3 と D4 を返します。

    数式のセルに文字列 "blue" が表示され、その下のセルに値 1 が表示されます。 このシナリオでは、元のブール値 TRUE が数値に変換されます。

    blue
    1

    次の表は、上記のサンプルデータの表に関連しない追加の例を示しています。

    Formula Description Returns
    =INDEX(A1:C3~A5:C7~A9:C11; 1; 1)

    =INDEX(A1:C3~A5:C7~A9:C11; 1; 1; 1)

    When no value is specified for the Range argument, the default of 1 is used.

    Returns the data in the cell that resides at the intersection of row 1 and column 1, in the first area defined in the Reference argument.

    範囲 引数に値が指定されていない場合は、デフォルトの 1 が使用されます。 引数 参照 で定義された最初の領域の行 1 と列 1 の交点にあるセルのデータを返します。

    セル A1 の内容
    =INDEX(A1:C3~A5:C7~A9:C11; 1; 1; 2) Returns the data in the cell that resides at the intersection of row 1 and column 1, in the second area defined in the Reference argument.

    引数 参照で定義された 2 番目の領域の、行 1 と列 1 の交点にあるセルのデータを返します。

    セル A5 の内容
    =INDEX(ThreeAreas; 3; 3; 3)

    ここで ThreeAreas は、参照式 $A$1:$C$3~$A$5:$C$7~$A$9:$C$11 の内容で名前付き範囲として定義されています。

    Returns the data in the cell that resides at the intersection of row 3 and column 3, in the third area defined in the Reference argument.

    引数 参照 で定義された 3 番目の領域の、行 3 と列 3 の交点にあるセルのデータを返します。

    セル C11 の内容
    =INDEX(ThreeAreas; 2; 2; {1;2;3}) }

    CSEを使用します。 ThreeAreas は、参照式 $A$1:$C$3~$A$5:$C$7~$A$9:$C$11 の内容で名前付き範囲として定義されています。 {1;2;3} は、範囲 引数の 3 行からなる 1 列のインライン配列で、行区切りにセミコロンを使用します。

    Returns the data in the cell that resides at the intersection of row 2 and column 2, in each of the three areas defined in the Reference argument. The three values are returned, arranged in a column.

    引数 参照 で定義された 3 つの領域のそれぞれで、行 2 と列 2 の交点にあるセルのデータを返します。 3 つの値が列に配置されて返されます。

    セル B2、B6 および B10 の内容
    =INDEX({1,3,5; 7,9,10}; {2;1}; 1; 1) }

    CSEを使用します。 {1,3,5; 7,9,10} は、行区切り文字にセミコロン、列区切り文字にカンマを使用した、3 列 × 2 行 のインライン配列です。

    2 行の 1 列で構成されます。2 行目から最初の値を返し、1 行目から最初の値を返します。
    7
    1
    =CELL("address"; INDEX(A2:C6; 2; 2))

    INDEX 関数は、セル B3 への参照を返します。 CELL 関数は、セル B3 の絶対アドレスを返します。

    $B$3

    Related LibreOffice functions:

    AREAS

    CHOOSE

    MATCH

    ODF standard:

    Section 6.14.6, part 2

    Typo in INDEX() description for one-dimensional row vector

    Related (or similar) Excel functions:

    INDEX