FILTERの結果を横1行に並べるには =TOROW(FILTER(A2:A10, 条件)) が最速です。TOROWが使えないExcel 2021などでは =TRANSPOSE(FILTER(A2:A10, 条件)) で行列を入れ替えます。
FILTER関数で条件抽出した結果は、必ず縦方向にスピルします。「抽出したメンバー名を横一列に並べたい」「見出しの下に横向きで表示したい」という場合は、TOROW関数またはTRANSPOSE関数で向きを変換します。この記事では両方の方法と使い分けを解説します。
今回のゴール:営業部のメンバーを横1行に並べる
以下のサンプルデータをExcelシートにコピーしてください。
練習用のExcelファイルはこちらからダウンロードできます:
Excel-filter-yoko-narabe-1.xlsx(ダウンロード)
| A | B | |
|---|---|---|
| 1 | 氏名 | 部署 |
| 2 | 佐藤 | 営業 |
| 3 | 鈴木 | 総務 |
| 4 | 高橋 | 営業 |
| 5 | 田中 | 経理 |
| 6 | 伊藤 | 営業 |

方法1:TOROW関数(Microsoft 365)
=TOROW(FILTER(A2:A6, B2:B6="営業")) → 佐藤 高橋 伊藤(横1行にスピル)
内側のFILTERが「営業」の氏名を縦に抽出し、TOROWがそれを1行に変換します。逆に縦1列に揃えたいときはTOCOL関数です。
方法2:TRANSPOSE関数(Excel 2021でもOK)
=TRANSPOSE(FILTER(A2:A6, B2:B6="営業")) → 同じく横1行に表示
TRANSPOSEは行と列を入れ替える関数なので、縦1列の抽出結果なら結果はTOROWと同じです。TOROWがないバージョン(Excel 2021など)ではこちらを使ってください。
複数列を抽出して横向きにする場合
複数列をFILTERで抽出した場合、TOROWは全データを1行に「つなげて」しまいます。表の縦横を丸ごと入れ替えたいときはTRANSPOSEを使います。
=TRANSPOSE(FILTER(A2:B6, B2:B6="営業")) → 1行目に氏名、2行目に部署が横に並ぶ
| 使いたい形 | 使う関数 |
|---|---|
| 1列の抽出結果を横1行に | TOROW(またはTRANSPOSE) |
| 複数列の抽出結果の縦横を入替 | TRANSPOSE |
| 何行×何列と形を指定して並べたい | WRAPROWS/WRAPCOLS |
注意点
スピルの出力先に既存のデータがあると #SPILL! エラーになります。横方向に十分な空きセルを確保してから数式を入力してください。また、該当データが0件のときのエラーは =TOROW(FILTER(A2:A6, B2:B6="営業", "該当なし")) のようにFILTERの第3引数で回避できます。
まとめ
「FILTERで抽出 → TOROW/TRANSPOSEで横向きに変換」の2段構えを覚えれば、抽出結果を自由なレイアウトで表示できます。名簿の横並び表示や、集計表の見出し行づくりにぜひ活用してください。
▶ こんな場合はこちら:FILTER関数の基本の使い方/動的配列・スピル関数のまとめ

コメント