GoogleスプレッドシートのINDEX関数の基本的な動作についてです。
- INDEX関数を使って、ARRAYFORMULA関数と同様に複数の計算結果を複数のセルに展開できます。
手順
はじめにですが、INDEX関数で第2引数以降を省略すると、第1引数で指定した範囲の内容をそのまま返します。
画像ではE2セルに「=INDEX(B2:C3)」と入力することでB2:C3の範囲の内容をそのまま取得し、E2:F3の範囲に展開しています。
これについては「=ARRAYFORMULA(B2:C3)」や「={B2:C3}」、あるいは「=QUERY(B2:C3)」としても同じ結果が得られます。
ただし特徴的なのは式を併用したときで、画像ではD3セルに「=INDEX(B3:B7+C3:C7)」と入力することで5つの足し算の結果を一挙に取得・表示しています。
これについては波カッコやQUERY関数では同じようにはいかず(最初の「9」しか表示されない)、同様の結果が得られるのはARRAYFORMULAのみです。
さらに関数と併用したときも同様です。
画像ではD3セルに「=INDEX(RANK(C3:C10,C3:C10))」と入力し、各点数に基づく順位を一挙に取得しています。
非配列関数に配列を渡すという本来の用途ではARRAYFORMULA関数を使用しておいた方が無難かと思いますが、INDEX関数の使用例として知っておいて損はなさそうです。第2引数以降を使って特定の行・列のみ返すように絞り込むことも可能ですし、なにより式が短いのが魅力的に見えるかもしれません。