FILTER関数の結果を横1行に並べる方法|TOROW関数が最短(TRANSPOSEとの比較)

FILTER関数の結果を横1行に並べる方法|TOROW関数が最短(TRANSPOSEとの比較)
結論(先に答え)

FILTERの結果を横1行に並べるには =TOROW(FILTER(A2:A10, 条件)) が最速です。TOROWが使えないExcel 2021などでは =TRANSPOSE(FILTER(A2:A10, 条件)) で行列を入れ替えます。

FILTER関数で条件抽出した結果は、必ず縦方向にスピルします。「抽出したメンバー名を横一列に並べたい」「見出しの下に横向きで表示したい」という場合は、TOROW関数またはTRANSPOSE関数で向きを変換します。この記事では両方の方法と使い分けを解説します。

目次

今回のゴール:営業部のメンバーを横1行に並べる

以下のサンプルデータをExcelシートにコピーしてください。

練習用Excelファイル(無料ダウンロード)
「今回のゴール:営業部のメンバーを横1行に並べる」の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
AB
1氏名部署
2佐藤営業
3鈴木総務
4高橋営業
5田中経理
6伊藤営業
FILTER関数の結果をTOROW関数で横1行に並べる図解

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

方法1:TOROW関数(Microsoft 365)

D2に入力:TOROW関数で、FILTERの結果を横1行にする(Microsoft 365)
数式=TOROW(FILTER(A2:A6,B2:B6="営業"))
ひとことで「営業」の氏名を取り出して、横1行に並べる
A2:A6
取り出す範囲です。氏名の列だけを指定します
B2:B6="営業"
条件です。部署が「営業」の行だけが TRUE になります
TOROW(…)
FILTERが縦に取り出した結果を、横1行に変えます。縦1列にしたいときは TOCOL 関数です
データの流れ
① 部署が「営業」の行の氏名を、縦に取り出す(黄色)
A2佐藤A3鈴木A4高橋A5田中A6伊藤
▼
② 横1行にスピルする結果
D2佐藤E2高橋F2伊藤
ポイント内側のFILTERが「営業」の氏名を縦に抽出し、TOROWがそれを1行に変換します。逆に縦1列に揃えたいときはTOCOL関数です。
営業の人を横1行に並べる(TOROWとFILTER)式 =TOROW(FILTER(A2:A6,B2:B6="営業")) の解説図。D2に入力する
D2に =TOROW(FILTER(A2:A6,B2:B6="営業")) を入力。FILTER で営業の3人を 縦に取り出し TOROW で横1行にする

方法2:TRANSPOSE関数(Excel 2021でもOK)

D4に入力:TRANSPOSE関数で、横1行にする(Excel 2021でも可)
数式=TRANSPOSE(FILTER(A2:A6,B2:B6="営業"))
ひとことで縦1列の抽出結果の、縦と横を入れ替える
A2:A6
取り出す範囲です。氏名の列だけを指定します
B2:B6="営業"
条件です。部署が「営業」の行だけが TRUE になります
TRANSPOSE(…)
行と列を入れ替えます。縦1列の結果なら、TOROWと同じ横1行になります
補足TOROWがないバージョン(Excel 2021など)では、こちらを使います。
ポイントTRANSPOSEは行と列を入れ替える関数なので、縦1列の抽出結果なら結果はTOROWと同じです。TOROWがないバージョン(Excel 2021など)ではこちらを使ってください。
練習用Excelファイル(無料ダウンロード)
名簿の練習ファイルで、TOROWとTRANSPOSEを試せます営業の人数を増やしたり減らしたりして、横に並ぶ氏名が変わるのを確認できます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

複数列を抽出して横向きにする場合

注意複数列をFILTERで抽出した場合、TOROWは全データを1行に「つなげて」しまいます。表の縦横を丸ごと入れ替えたいときはTRANSPOSEを使います。
D6に入力:複数列を抽出して、表ごと縦横を入れ替える
数式=TRANSPOSE(FILTER(A2:B6,B2:B6="営業"))
ひとことで氏名と部署の2列を取り出し、1行目に氏名、2行目に部署を並べる
A2:B6
取り出す範囲です。氏名と部署の2列を指定します
B2:B6="営業"
条件です。部署が「営業」の行だけが TRUE になります
TRANSPOSE(…)
表全体の縦と横を入れ替えます。TOROWだと、全データが1行につながってしまいます
データの流れ
① 営業の行を、氏名と部署の2列で取り出す(縦)
2行目佐藤|営業4行目高橋|営業6行目伊藤|営業
▼
② 縦横を入れ替えて、2行で横に並ぶ結果
1行目(氏名)佐藤 高橋 伊藤2行目(部署)営業 営業 営業
使いたい形使う関数
1列の抽出結果を横1行にTOROW(またはTRANSPOSE)
複数列の抽出結果の縦横を入替TRANSPOSE
何行×何列と形を指定して並べたいWRAPROWS/WRAPCOLS

横に並べるときの注意点(#SPILL!・0件のエラー)

注意スピルの出力先に既存のデータがあると #SPILL! エラーになります。横方向に十分な空きセルを確保してから数式を入力してください。また、該当データが0件のときのエラーは =TOROW(FILTER(A2:A6, B2:B6="営業", "該当なし")) のようにFILTERの第3引数で回避できます。
練習用Excelファイル(無料ダウンロード)
D2に式を入れて、佐藤・高橋・伊藤が横1行に並ぶことを確かめられます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
対応バージョン条件のセルを書き換えて、都道府県ごとに氏名を横に並べる例や、FILTERが使えないExcel 2019・2016の補助列方式(INDEX+MATCH)は、FILTER関数の結果を横に並べる|TRANSPOSEと組み合わせる方法で、練習ファイル付きで解説しています。

FILTERの結果を横に並べる式のまとめ

「FILTERで抽出 → TOROW/TRANSPOSEで横向きに変換」の2段構えを覚えれば、抽出結果を自由なレイアウトで表示できます。名簿の横並び表示や、集計表の見出し行づくりにぜひ活用してください。

▶ こんな場合はこちら:FILTER関数の基本の使い方/動的配列・スピル関数のまとめ

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

この記事を書いた人

コメント

コメントする

目次