(Gスプレッドシート)INDEX関数を使って複数の計算結果を得る

 GoogleスプレッドシートのINDEX関数の基本的な動作についてです。

  • INDEX関数を使って、ARRAYFORMULA関数と同様に複数の計算結果を複数のセルに展開できます。

手順

f:id:accs2014:20210522111813p:plain:right:w550

 はじめにですが、INDEX関数で第2引数以降を省略すると、第1引数で指定した範囲の内容をそのまま返します。
 画像ではE2セルに「=INDEX(B2:C3)」と入力することでB2:C3の範囲の内容をそのまま取得し、E2:F3の範囲に展開しています。

 これについては「=ARRAYFORMULA(B2:C3)」や「={B2:C3}」、あるいは「=QUERY(B2:C3)」としても同じ結果が得られます。
 

f:id:accs2014:20210522111816p:plain:right:w450

 ただし特徴的なのは式を併用したときで、画像ではD3セルに「=INDEX(B3:B7+C3:C7)」と入力することで5つの足し算の結果を一挙に取得・表示しています。
 これについては波カッコやQUERY関数では同じようにはいかず(最初の「9」しか表示されない)、同様の結果が得られるのはARRAYFORMULAのみです。

 

f:id:accs2014:20210522111820p:plain:right:w450

 さらに関数と併用したときも同様です。
 画像ではD3セルに「=INDEX(RANK(C3:C10,C3:C10))」と入力し、各点数に基づく順位を一挙に取得しています。

 非配列関数に配列を渡すという本来の用途ではARRAYFORMULA関数を使用しておいた方が無難かと思いますが、INDEX関数の使用例として知っておいて損はなさそうです。第2引数以降を使って特定の行・列のみ返すように絞り込むことも可能ですし、なにより式が短いのが魅力的に見えるかもしれません。