いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)表の中のn行目(n列目)を取得する

 Googleスプレッドシートで、指定した範囲の中で上からn行目(左からn列目)を抽出する方法についてです。

  • 「=INDEX(範囲,n)」で、指定した範囲内の上からn行目を取得できます。
  • 「=INDEX(範囲,,n)」で、左からn列目を取得できます。
  • ARRAYFORMULAを使っても複数行(列)の取得ができないのが難点です。

手順

n番目の行を取得する

f:id:accs2014:20200823110709p:plain:right:w600

 画像ではF3セルにINDEX関数を使った式を入力し、B3:D11の範囲(見出し部分を含まないことに注意)の中の、上から3行目の内容を取り出しています。

 F3セル

=INDEX(B3:D11,3)

 INDEX関数は範囲(第1引数)と行番号(第2引数)、列番号(第3引数)を指定することで値を取得する関数ですが、列番号を省略することで行全体を取得することができます。
 

f:id:accs2014:20200823110712p:plain:right:w600

 なお、第2引数を配列にしてARRAYFORMULA関数を併用すれば複数の行を取得できそうですが、INDEX関数と併用しても効果がないため失敗します(画像)。

 あえてINDEX関数でやろうとすれば「={INDEX(B3:D11,3);INDEX(B3:D11,8)}」で済みますが、取得する行が多くなるとお手上げです。
 QUERY関数のOFFSET,LIMIT句やARRAY_CONSTRAIN関数などの利用を考慮した方がよさそうです。

n番目の列を取得する

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

 INDEX関数の第2引数(行の指定)を省略すれば、行全体を取得することができます。
 画像ではF3セルに式を入力して、B3:B11の範囲内の左から2行目を取得しています。

 F3セル

=INDEX(B3:D11,,2)

 備考として、ARRAYFORMULA関数を使ってもやはり複数の列を取得することはできません(行取得の例と同様)。