いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Excel)表の中のn行目(n列目)を抽出する

 Excelで、表の中の(つまり指定した範囲内の)n行目の内容を取得する方法についてです。n列目の内容を取得することもできます。

  • 「=INDEX(範囲,n,)」という式により、表の中のn行目の内容を抽出することができます。
  • 「=INDEX(範囲,,n)」という式により、n列目の内容を抽出することができます。

手順

n番目の行を取得する

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

 画像ではF3セルに式を入力することで、B3:D8の範囲(見出し部分を含まないことに注意)の中の3行目の内容を取り出しています。


 F3セル

=INDEX(B3:D8,3,)

 INDEX関数は指定した範囲のうち、指定した行・列に存在する値を抽出する関数です。
 このように第3引数(列の指定)を省略すれば、列全体を抽出することができます。ただし、第2引数の後のカンマは省略できない(省略するとエラーになる)ことに注意が必要です。
 

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

 なお、複数の行を指定するときには第2引数を配列にします。
 しかし画像のように単に「{2;4}」とするだけでは(「;」で区切ることに注意)、2行目と4行目の一番左の列しか抽出できません。

 

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

 よってこのときは第3引数を省略せず、このような式にする必要があります。

 F3セル

=INDEX(B3:D8,{2;4},{1,2,3})

n番目の列を取得する

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

 考え方は行の抽出と同じです。
 INDEX関数の第2引数(行の指定)を省略すれば、行全体を抽出することができます。

 F3セル

=INDEX(B3:D8,,2)

 備考としては、複数の列を抽出する際には行番号の指定が省略できません(上記の例と同様)。
 行数が多いとすべての行を指定するのが困難になることが想定されますが、関数で対応するとすれば次のようになります(2列目と3列目を抽出する例)。

=INDEX(B3:D8,SEQUENCE(ROWS(B3:D8)),{2,3})