S053|Excel関数による条件を満たすデータを横並びで抽出|TRANSPOSE、FILTER、COUNTIF、IFNA、INDEX、MATCH、COLUMN

条件に該当するデータを横並びに抽出するなら、Excel2021/365ならFILTER関数で抽出したデータをTRANSPOSE関数で横並びに入れ替えて求めましょう。Excel2019/2016なら、COUNTIF関数で条件ごとに連番を付けて、条件+連番をもとにINDEX+MATCH+COLUMN関数で抽出しましょう。

目的

指定の形で抽出

使用する関数

TRANSPOSE関数、FILTER関数、COUNTIF関数、IFNA関数、INDEX関数、MATCH関数、COLUMN関数

目次

例題1|

  1. データを求めるセル(B3セル)を選択し、「=TRANSPOSE(FILTER(」と入力する。
  2. [配列]…抽出する「氏名」のセル範囲を選択して、「F4」キーを1回押して「$」記号をつけ絶対参照にする。
  3. [含む]…「B7セル~B9セル」の「都道府県」がA3セルの都道府県である場合の条件式を入力する。
  4. [空の場合]…省略して、「Enter」キーで数式を確定する。
  5. 数式を他の行に複写する。

【数式】 =TRANSPOSE(FILTER($A$7:$A$9,$B$7:$B$9=A3))

使用するExcel関数

TRANSPOSE関数、FILTER関数、COUNTIF関数、IFNA関数、INDEX関数、MATCH関数、COLUMN関数

数式の解説

「=TRANSPOSE(FILTER($A$7:$A$9,$B$7:$B$9=A3))」の数式は、B7セル~B9セルの「都道府県」がA3セルの都道府県「埼玉県」である場合の条件を満たす、「氏名」(A7セル~A9セル)の行列を入れ替えて抽出する。ほかの行にコピーすることで、「都道府県」ごとに「氏名」が横並びで抽出される。

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx

例題2|

  1. D列のセルを選択し、「=B7&COUNTIF($B$7:B7,B7)」と入力したら、「Enter」キーで数式を確定する。
  2. 数式を必要なだけ複写する。
  3. データを求める表の左上のセル(B3セル)を選択し、「=IFNA(INDEX(」と入力する。
  4. [参照]…抽出する「氏名」のセル範囲を選択して、「F4」キーを1回押して[$]記号をつけ絶対参照にする。
  5. [行番号]…MATCH関数で条件「都道府県&1」のセルが表のD列の「都道府県&連番」の何番目にあるかを求める数式を入力する。
  6. [列番号][領域番号]…省略する。
  7. [NAの場合の値]…[””](空白)を入力して、「Enter」キーで数式を確定する。
  8. 数式を必要なだけ複写する。

【数式】=IFNA(INDEX($A$7:$A$9,MATCH($A3&COLUMN(A1),$D$7:$D$9,0)),””)

使用するExcel関数

TRANSPOSE関数、FILTER関数、COUNTIF関数、IFNA関数、INDEX関数、MATCH関数、COLUMN関数

数式の解説

「=B7&COUNTIF($B$7:B7,B7)」の数式を作成してコピーすると、それぞれの「都道府県」に、同じ「都道府県」が1つなら「1」、2つあるなら「2」とカウントされた数をつなげた1つの文字列が作成される。

「MATCH($A3&COLUMN(A1),$D$7:$D$9,0)」の数式は、A3セルの「埼玉県」&1がD7セル~D9セルに作成した文字列内の何番目にあるかを求める。

求められた番目をINDEX関数の引数の[行番号]に組み合わせて数式を作成すると、「埼玉県」の「氏名」が抽出される。数式をコピーすると、次の列にはCOLUMN関数で求められた列番号が指定された数式「埼玉県」の2つ目の「氏名」が抽出される。次の行にコピーすると、「=IFNA(INDEX($A$7:$A$9,MATCH($A4&COLUMN(A2),$D$7:$D$9,0)),“”)」とMATCH関数の引数の[検査値]に「神奈川県」が指定されるので、「都道府県」ごとに「氏名」が横並びで抽出される。

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample2.xlsx

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次