Googleスプレッドシートで、指定した範囲の中で上からn行目(左からn列目)を抽出する方法についてです。
- 「=INDEX(範囲,n)」で、指定した範囲内の上からn行目を取得できます。
- 「=INDEX(範囲,,n)」で、左からn列目を取得できます。
- ARRAYFORMULAを使っても複数行(列)の取得ができないのが難点です。
手順
n番目の行を取得する
画像ではF3セルにINDEX関数を使った式を入力し、B3:D11の範囲(見出し部分を含まないことに注意)の中の、上から3行目の内容を取り出しています。
F3セル
=INDEX(B3:D11,3)
INDEX関数は範囲(第1引数)と行番号(第2引数)、列番号(第3引数)を指定することで値を取得する関数ですが、列番号を省略することで行全体を取得することができます。
なお、第2引数を配列にしてARRAYFORMULA関数を併用すれば複数の行を取得できそうですが、INDEX関数と併用しても効果がないため失敗します(画像)。
あえてINDEX関数でやろうとすれば「={INDEX(B3:D11,3);INDEX(B3:D11,8)}」で済みますが、取得する行が多くなるとお手上げです。
QUERY関数のOFFSET,LIMIT句やARRAY_CONSTRAIN関数などの利用を考慮した方がよさそうです。
n番目の列を取得する
INDEX関数の第2引数(行の指定)を省略すれば、行全体を取得することができます。
画像ではF3セルに式を入力して、B3:B11の範囲内の左から2行目を取得しています。
F3セル
=INDEX(B3:D11,,2)
備考として、ARRAYFORMULA関数を使ってもやはり複数の列を取得することはできません(行取得の例と同様)。