FILTER関数で取り出した名前を横に並べるには、結果をTRANSPOSE関数で囲みます。都道府県ごとに該当する人を横並びに表示する例で、式の入力場所、コピーの方向、該当者がいないときの対処を説明します。
目次
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
FILTERの結果を横に並べる基本式
A7:A9に氏名、B7:B9に都道府県、A3に抽出したい都道府県を入力します。結果の先頭となるB3へ、次の式を入力してください。
FILTERが該当する氏名を縦に抽出し、TRANSPOSEが縦横を入れ替えます。A3が埼玉県なら、サンプルの木村洋子・田中康規がB3、C3へ横に並びます。
都道府県を条件に氏名を抽出し、TRANSPOSEで横方向へ展開する例。(画像をタップすると拡大)
▶ この式(B3)を、上の練習ツールで試す / 練習ファイルの式(B3・B4)を、上の練習ツールで試す
数式は右へコピーしない
注意Microsoft 365・Excel 2024・2021では、B3の式だけで結果が右へスピルします。C3以降へ同じ式をコピーすると、結果どうしがぶつかる原因になります。表示先は空けておきましょう。
ポイント別の都道府県も表示したい場合は、A4に都道府県を入力し、B3の式をB4へコピーします。データ範囲は $ で固定しているため動かず、条件セルだけが $A3 から $A4 に変わります。
該当者がいない・空白が0になる場合
ポイントFILTERの第3引数「該当なし」は0件のときの表示です。空白にしたいなら "" に変更できます。元データの氏名が空白の行を除きたい場合は、抽出条件にも空白除外を加えます。
ポイント抽出範囲と条件範囲は同じ行数にします。ここではどちらも7~100行です。見た目だけ空白のスペースは、<>"" では除外できません。
▶ 空白行を除く式(F3)を、上の練習ツールで試す
Excel 2019・2016で横に抽出する方法
FILTERが使えない場合は、都道府県ごとの連番を補助列へ作ります。サンプルと同じD7へ次の式を入力し、D9までコピーします。
ポイント埼玉県が2件なら「埼玉県1」「埼玉県2」というキーができます。都道府県名を条件にするこのサンプルでは、末尾に連番を付けて区別できます。一般の商品名などで使う場合は区切り文字も含め、別の組み合わせが同じキーにならないようにしてください。
B3へ次の式を入力し、右方向へ必要な人数分コピーします。その後、別の都道府県の行へ下方向にコピーします。
ポイントCOLUMN(A1)は1、右へコピーするとCOLUMN(B1)で2になります。条件と連番で1人目、2人目を順に探し、見つからない分は空白になります。
補助列の連番とINDEX+MATCHで1件ずつ横に取り出す、FILTERがないExcel向けの方法。(画像をタップすると拡大)
▶ 補助キーとINDEX・MATCHの式(B3)を、上の練習ツールで試す
横並びにならない・エラーになるときの確認表(#SPILL!・#CALC!)
| 症状 | 確認すること |
|---|
| #SPILL! | 右側に値や数式、結合セルがないか |
| #CALC! | FILTERの第3引数を省略し、該当行が0件になっていないか |
| #VALUE! | 氏名範囲と条件範囲の行数が同じか |
| 想定より結果の行数が増える | FILTERの抽出範囲に複数列を含めていないか |
注意氏名だけを1行に並べるなら、FILTERの第1引数は氏名の1列にします。表全体をTRANSPOSEすると、表全体の行列が入れ替わるため、別の配置になります。
氏名だけを横1行にするなら、TOROW関数でも書ける(Microsoft 365)
Microsoft 365では、TRANSPOSEの代わりに TOROW 関数を使っても、同じ結果になります。TOROWとTRANSPOSEの使い分け(複数列を抽出したとき、縦に戻すTOCOLなど)は、FILTER関数の結果を横に並べる方法|TOROW・TRANSPOSEとの組み合わせで解説しています。
複数条件や横方向の表を扱う場合
「都道府県が一致し、氏名が空白でない」のようなAND条件は * でつなぎます。条件の書き方はFILTERのAND・OR条件、表示先のエラーは#SPILL!の原因と直し方で確認できます。
仕様の確認:Microsoft公式・FILTER関数
コメント