Excelで複数の値を横並びで返すVLOOKUP

  • これを共有
Hugh West

Microsoft Excelでは、次のようなオプションがあります。 VLOOKUPで複数の値を返す を水平にする。 ブイルック 関数自体が複数の値を水平に返すことができないので、この記事では代替案を適切な図解付きで紹介します。

練習用ワークブックをダウンロードする

この記事の作成に使用したExcelワークブックをダウンロードすることができます。

VLOOKUPで複数の値を水平に返す.xlsx

VLOOKUPで複数の値を横並びで返す2つの方法

があります。 ブイルック 関数は、表の左端の列から値を探し、指定した列から同じ行の値を返します。 VLOOKUP関数で複数の値を一度に取り出すことはできません。 出力セルをドラッグダウンして以下の結果を生成すると、一部のデータで値が重複してしまいます。 そして結局、抽出したデータを水平に表示するには、単にその ブイルック 機能 そこで,Excelの表計算ソフトに適用できる選択肢を2つ紹介します.

1.INDEX関数、SMALL関数、IF関数を使ってVLOOKUPし、対応する値を水平方向に返す

下図は、スマートフォンの機種名とブランド名の一覧表ですが、順不同のため、特定のブランドの機種名を抽出して横一列に並べています。

例えば、スマートフォンのブランドであるサムスンのモデル名を、以下のように表示したい。 16列目 .

📌 ステップ1.

での必要な計算式。 セルC16 になります。

=index($c$5:$c$14, small(if($b$16=$b$5:$b$14,row($b$5:$b$14)-row($b$5)+1)), column(a1)))

を押した後、➤を押してください。 入力 を選択すると、テーブルからSamsungの最初のモデル名が表示されます。

📌 ステップ2.

今すぐ使用する フィルハンドル から セルC16 に沿って右方向にドラッグします。 16列目 が出るまで #エヌエム のエラーが表示される。

をスキップする #エヌエム というエラーが発生し、そのエラーが含まれるセルの前でオートフィルを停止する。

そして、与えられた表にあるSamsungのスマートフォンのモデル名がすべて横並びに表示されます。

🔎 フォーミュラの仕組みは?

  • 行($b$5:$b$14)-行($b$5)+1。 この部分は第2引数に代入される ([値_if_true]) イフ セル範囲内の全データの行番号を定義する関数です。 B5:B14 を実行し、以下の配列を返す。

{1;2;3;4;5;6;7;8;9;10}

  • if($b$16=$b$5:$b$14, row($b$5:$b$14)-row($b$5)+1): この部分は、Samsung デバイスのみの条件にマッチします。 マッチが見つかった場合、この式は視点の行番号を返し、そうでない場合は、次のようになります。 ファルス ということで、この式から得られる全体の戻り配列は、次のようになります。

{1;誤;3;誤;5;6;誤;9;誤}。

  • small(if($b$16=$b$5:$b$14, row($b$5:$b$14)-row($b$5)+1)), column(a1)): small この関数では、前のステップで見つかった最小の行番号を抽出し、それを 2 番目の引数として定義します。 (row_num) INDEX 関数を使用します。
  • 最後に、全体と組み合わせた式で、Samsungのデバイスの最初のモデル名を抽出し C列 .

続きを読む ExcelでVLOOKUPを複数条件で使用する(6つの方法+代替案)

類似の読み物

  • VLOOKUPが動作しない(8つの理由と解決策)。
  • VLOOKUPでマッチがあるのになぜN/Aを返すのか?
  • Excel VLOOKUPで複数の値を縦に返す
  • Excel VLOOKUPでカンマで区切られた1つのセルに複数の値を返す

2.VLOOKUPでExcelの連続したデータから複数の値を横並びで返す

では、別のシナリオを考えてみましょう。 次の表では B列 は、2つのスマートフォンブランドを並べたものです。 前回と同様に、特定の1つのブランドのモデル名を抽出しますが、この式は、連続した範囲のデータに対してのみ有効です。 前項のようにブランド名がランダムに並んでいる場合、この式は正しく動作しません。

例えば、Xiaomiのスマートフォンのモデル名だけを抽出して、横向きに 16列目 .

📌 ステップ1.

出力において セルC16 の場合、必要な計算式は次のようになります。

=IF(COLUMN()-2<=COUNTIF($B$5:$B$14,$B16), INDEX($C$5:$C$14,MATCH($B16,$B$5:$B$14,0)+COLUMN()-3),"")

プレス 入力 をクリックすると、すぐにXiaomiの最初のスマートフォンのモデル名が表示されます。

📌 ステップ2.

今すぐ使用する フィルハンドル に沿って右方向にオートフィルする。 16列目 空白のセルが表示されるまで

そして、下のスクリーンショットのように、選択したブランドのモデル名のみがすべて表示されます。

🔎 フォーミュラの仕組みは?

  • match($b16,$b$5:$b$14,0)。 があります。 MATCH 関数の内部で INDEX 関数は、Xiaomi という名前を含むセルの最初の行番号を返します。
  • match($b16,$b$5:$b$14,0)+column()-3: この部分は、第2引数の INDEX この関数は、最初の結果データを探す行番号を定義します。
  • index($c$5:$c$14, match($b16,$b$5:$b$14,0)+column()-3)): この部分はIF関数の第2引数になります ([値_if_TRUE]) で、前のステップで見つかった行番号に基づいて、最初の出力データを抽出する。
  • 一致するものがない場合は イフ 関数は空白のセルを返します。

💭注意。 この式でデータを正しく返すには、テーブルを B列 どこ B列 は基準を表すことになり C列 には出力データが入ります。 で示したように、表の下か上のB列にも選択条件を定義する必要があります。 セル B16 .

続きを読む INDEX MATCHとVLOOKUP関数の比較 (9例)

結びの言葉

以上、2つの方法をご紹介しましたが、これで、Excelのスプレッドシートで、表からデータを抽出して横一列に表示する、という応用ができるようになると思います。 もし、ご質問やご意見がありましたら、コメント欄でお知らせください。 あるいは、このサイトのExcel関数関連の他の記事もご覧になってみてください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。