FILTER関数で取り出した名前を横に並べるには、結果をTRANSPOSE関数で囲みます。都道府県ごとに該当する人を横並びに表示する例で、式の入力場所、コピーの方向、該当者がいないときの対処を説明します。
この記事の基本の式です。セル番地は、下で説明する例の表のものです。
=TRANSPOSE(FILTER($A$7:$A$9,$B$7:$B$9=$A3,"該当なし"))
FILTERの結果を横に並べる基本式
A7:A9に氏名、B7:B9に都道府県、A3に抽出したい都道府県を入力します。結果の先頭となるB3へ、次の式を入力してください。
FILTERが該当する氏名を縦に抽出し、TRANSPOSEが縦横を入れ替えます。A3が埼玉県なら、サンプルの木村洋子・田中康規がB3、C3へ横に並びます。

▶ この式(B3)を、練習ツールで試す / 練習ファイルの式(B3・B4)を、練習ツールで試す

まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
FILTER 関数の基本(書き方・いろいろな条件・並べ替え・#CALC! の直し方)は、FILTER関数の使い方にまとめています。
数式は右へコピーしない
該当者がいない・空白が0になる場合
Excel 2019・2016で横に抽出する方法
FILTERが使えない場合は、都道府県ごとの連番を補助列へ作ります。サンプルと同じD7へ次の式を入力し、D9までコピーします。
B3へ次の式を入力し、右方向へ必要な人数分コピーします。その後、別の都道府県の行へ下方向にコピーします。

▶ 補助キーとINDEX・MATCHの式(B3)を、練習ツールで試す
【実機で検証】空白・0件で結果はどうなるか
FILTER の結果を横に並べる方法を、空白や 0 件のデータで比べました。

| 場面 | 書き方 | 結果 |
|---|---|---|
| 名前が空白の行がある | TRANSPOSE/TOROW | 佐藤 0 田中 |
| 名前が空白の行がある | =TOROW(FILTER(…),1) | 佐藤 田中 |
| 1 つのセルにまとめたい | TEXTJOIN(“、”,TRUE,FILTER(…)) | 佐藤、田中 |
| 該当が 0 件 | FILTER の第3引数なし | #CALC! |
| 該当が 0 件 | FILTER の第3引数に “該当なし” | 該当なし |
| 広がる先のセルに値がある | TRANSPOSE | #スピル! |
空白の行は 0 になって並びました。TOROW が使える Excel なら、第2引数に 1 を指定すると空白を除けます。
横並びにならない・エラーになるときの確認表(#SPILL!・#CALC!)
| 症状 | 確認すること |
|---|---|
| #SPILL! | 右側に値や数式、結合セルがないか |
| #CALC! | FILTERの第3引数を省略し、該当行が0件になっていないか |
| #VALUE! | 氏名範囲と条件範囲の行数が同じか |
| 想定より結果の行数が増える | FILTERの抽出範囲に複数列を含めていないか |
氏名だけを横1行にするなら、TOROW関数でも書ける(Microsoft 365)
Microsoft 365では、TRANSPOSEの代わりに TOROW 関数を使っても、同じ結果になります。TOROWとTRANSPOSEの使い分け(複数列を抽出したとき、縦に戻すTOCOLなど)は、FILTER関数の結果を横に並べる方法|TOROW・TRANSPOSEとの組み合わせで解説しています。
複数条件や横方向の表を扱う場合
「都道府県が一致し、氏名が空白でない」のようなAND条件は * でつなぎます。条件の書き方はFILTERのAND・OR条件、表示先のエラーは#SPILL!の原因と直し方で確認できます。
仕様の確認:Microsoft公式・FILTER関数
条件のリストに合う行を取り出すときは、条件リストに一致する行を抽出する方法もあわせてご覧ください。

コメント