目次
Microsoft Excelでは、次のようなオプションがあります。 VLOOKUPで複数の値を返す を水平にする。 ブイルック 関数自体が複数の値を水平に返すことができないので、この記事では代替案を適切な図解付きで紹介します。
練習用ワークブックをダウンロードする
この記事の作成に使用したExcelワークブックをダウンロードすることができます。
VLOOKUPで複数の値を水平に返す.xlsxVLOOKUPで複数の値を横並びで返す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関数関連の他の記事もご覧になってみてください。