目次
今回は、Excelで複数の値を検索する方法について説明します。 表計算の作業中に、複数の値を一度に検索できると助かることがよくあります。 例えば、複数の人の趣味を集めたデータセットがあります。 しかし、このデータセットの中に、一人の人( エミリー には複数の趣味があります。 そこで、いくつかのExcelツールや関数を使って、Emilyの複数の趣味を一度に取得します。 さらに、1つのセルで複数の値を結合する方法も紹介します。
練習用ワークブックをダウンロードする
この記事の作成に使用した練習用ワークブックをダウンロードすることができます。
複数値の検索.xlsmExcelで複数の値を検索する8つの方法
1.検索と置換ツールを使って、Excelで複数の値を取得する
を使えば、非常に簡単に複数の値を取得することができます。 探す という機能があります。 検索と置換 道具 エムエスエクセル 我々のデータセットでは、Emilyという名前が言及されている 3 このため、以下の手順で検索してください。 3 の値を一度に取得することができます。
ステップス
- まず、データセットを選択します( B4:C11 ).
- 次に、 を押します。 Ctrl + F を表示させることができます。 検索と置換 ウィンドウにアクセスするか ホーム > 編集 グループ> 検索&選択 > 探す .
- 次に、''と入力します。 エミリー ' にある。 を探す フィールドをクリックし すべて検索 .
- その結果、以下のことが判明しました。 3 名前 エミリー をご覧ください。
続きを読む Excelで範囲内の値を検索する方法(3つの方法)
2.複数の値を検索するExcelフィルタオプション
エクセルで複数の値を取得するための簡単で迅速な別のオプションとして オートフィルター それでは、この方法の手順を見てみましょう。
ステップス
- まず、フィルタを適用したいセル上で右クリックします。 私は、選択した セルB5 というのは、すべての名前をフィルタリングする必要があるからです。 エミリー .
- その後 フィルター > 選択したセルの値でフィルタリング .
- その結果、名前を含むすべてのセルが エミリー は以下のようにフィルタリングされます。
- ここで、フィルタリングを元に戻したい場合は、そのまま オートフィルター アイコンをクリックし "名前 "からフィルタをクリアする をクリックします。 よっしゃー .
続きを読む Excelで文字列の中の文字を検索する方法
3.複数の値を返す高度なフィルターオプションの適用
Excelには、以下のようなフィルタリングオプションがあります。 アドバンストフィルター このオプションは、複数の値を検索するときに非常に便利です。 このオプションを適用するには、基準範囲を設定する必要があります。 アドバンストフィルター では、この方法の手順を説明します。
ステップス
- まず、基準範囲を設定します( B13:C14 ).
- 次に、次のページに進みます。 データ > ソート&フィルター > アドバンスト .
- その結果 アドバンストフィルタ rウィンドウが表示されます。 リスト範囲 ( データセット範囲 ) と 基準範囲 をクリックします。 よっしゃー .
- 最後に、ここでエミリーの趣味が一挙に揃った。
⏩ 備考
を覚えておいてください。 ヘッダー メインデータセットと 基準範囲 が類似していなければなりませんが、そうでなければ アドバンストフィルター オプションは機能しません。
4.Excelで定義したテーブルを使用して複数の値を返す
作成することができます。 エクセルで定義されたテーブル というように、フィルタリングを適用して複数の値を得ることができます。 これは非常に便利で簡単な方法で、複数の値を見つけることができます。
ステップス
- まず、データセットのいずれかのセルをクリックします( B4:C11 ).
- 次に、 を押します。 Ctrl + t をキーボードから操作することができます。 テーブルの作成 ウィンドウが表示されますので、テーブルの範囲を確認し よっしゃー .
- その結果、データセットから以下のような表が作成されました。
- 次に、テーブルのヘッダーの横にある下矢印のアイコンをクリックします。 次に、名前を確認します。 エミリー をクリックします。 よっしゃー
- 最終的に、期待されるフィルタリングの結果がこちらです。
類似の読み物。
- Excelでセル内のテキストを検索する方法
- Excel 範囲内の文字列を検索する(11のクイックメソッド)
- Excelでセルに特定の文字列が含まれているかどうかを確認する方法
- Excelの文字列を検索する(8つの簡単な方法)
5.複数の値を検索するFILTER関数を挿入する
今回は FILTER機能 を使用して、複数の値をエクセルで返します。
ステップス
- まず、以下の数式を セルC14 .
=FILTER(C5:C11,B5:B11=B14)
- 次に、 を押します。 入力 .
- その結果、エミリーの趣味が一挙に復活する。
⏩ 備考
➤ その フィルター 関数は Excel 365 のサブスクライバーです。
6.ExcelのINDEX関数で複数の値を検索する
を使用して複数の値を見つけることができます。 INDEX機能 といったエクセル関数があります。 この複数の値を取得する式は複雑です。 式は配列として入力されます。 とにかく、この式を以下に説明します。 その前に、この方法の手順を説明します。
ステップス
- 最初に、次の数式を セルC14 .
=index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11))),row(1:1))-4,2)
- その結果、以下のような結果を得ました。
- 次に、ドラッグして フィルハンドル ( + )記号で他の値を取得します。
- その結果、得られたエミリーの趣味のリストがこちら。
🔎 数式の仕組みは?
- if($b$5:$b$11=$b$14,row($b$5:$b$11))。
これです。 IF関数 がセル範囲の場合、行番号を返す。 B5:B11 が等しい。 B14 を返し、それ以外の場合は FALSE .
- small(if($b$5:$b$11=$b$14,row($b$5:$b$11))),row(1:1))
さて、この部分の計算式は SMALL機能 を返します。 nth 最小の値 この式は数値を返します。 5 , 8 , 11 .
- index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11))),row(1:1))-4,2)
さて、いよいよ式の最終部分です。 私たちが知っている、その INDEX 関数は与えられた位置の値を返します。 もうひとつは INDEX 関数は,テーブルの最初の行を 1 行目と見なします. 5 を引きました。 4 から 列 の値を使って、データセットから正しい行を取得します。 つまり、配列 B5:C11 行番号 5 , 8 , 11 であり、列番号 2 は、その INDEX 関数は、私たちが望む結果を提供します。
📌 上記の計算式で発生するエラーを非表示にする
上記のような問題があります。 INDEX をドラッグダウンすると フィルハンドル ( + ) の記号がある場合、この式はエラーを返します ( #NUM! )がある値以降になるようにします。 そこで、上記の数式を修正するために イフ と アイサーラー の機能を持つ。
ステップス
- まず、以下の数式を セルC14 .
=if(iserror(index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1))-4,2)),"",index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11))-4,2)))
- その結果、誤差のない結果を得ることができる。
ここでは アイサーラー 関数は、値がエラーであるかどうかをチェックし、TRUE または FALSE を返します。 上記の数式を イフ と アイサーラー 関数は,配列の結果がエラーであるか否かを調べ,エラーであれば空白("")を返し,そうでなければ対応する値を返す。
7.エクセルで複数の値を検索するユーザー定義関数(VBA)
このメソッドでは ユーザー定義機能 を使用して、複数の値を取得することができます。 ユーザー定義機能 : vbaVlookup .
ステップス
- まず、アクティブなワークシートに移動します。
- 次に、以下のサイトにアクセスします。 デベロッパー > ビジュアルベーシック .
- では、その ビジュアルベーシック のウィンドウが表示されます。 VBAプロジェクト コーナー(ウィンドウの左上隅)。
- 3つ目は、プロジェクト名の上で右クリックし インサート > モジュール .
- その結果 モジュール に以下のコードを記述します。 モジュール .
'ユーザ定義関数の名前と引数 Function vbaVlookup(lookup_value As Range, tbl As Range, col_index_num As Integer, Optional layout As String = "v") 'Declare variables and data types Dim r As Single, Lrow, Lcol As Single, temp() As Variant 'Redimension array variable temp ReDim temp(0 'Iterate through cells in cell range For r = 1 To tbl.Rows.Count 'Check if lookup_value is equal to.セル値 If lookup_value = tbl.Cells(r, 1) Then 'セル値を配列変数 temp に保存 temp(UBound(temp)) = tbl.Cells(r, col_index_num) '配列変数 temp に別のコンテナを追加 ReDim Preserve temp(UBound(temp) + 1) End If Next r '変数のレイアウトが h と同じか確認 If layout = "h" Then 'ユーザーが入力した列数を保存 this User Defined.Lcol = Range(Application.Caller.Address).Columns.Count '配列変数 temp の未入力コンテナを順に取得 For r = UBound(temp) To Lcol '配列コンテナに空白を保存 temp(UBound(temp)) = "" '配列変数 temp のサイズを 1 増やす ReDim Preserve temp(UBound(temp) + 1) Next r '配列サイズを小さくする変数 temp with 1 ReDim Preserve temp(UBound(temp) - 1) 'ワークシートに値を返す vbaVlookup = temp 'これらの行は変数レイアウトがhと等しくない場合に実行されます Else 'ユーザーがこのユーザー定義関数に入力した行数を保存 Lrow = Range(Application.Caller.Address).Rows.Count ' エラーにならないよう空のセルまで反復し何も保存しません。For r = UBound(temp) To Lrow temp(UBound(temp)) = "" ReDim Preserve temp(UBound(temp) + 1) Next r '配列変数 temp のサイズを 1 減らす ReDim Preserve temp(UBound(temp) - 1) 'temp 変数を値を縦に並べ替えてワークシートに戻す vbaVlookup = Application.Transpose(temp) End If End Function
- その後、関数を書き始めると セルC14 を選択すると、他のExcel関数と同様に表示されます。
- で以下の式を書きます。 セルC14 .
=vbaVlookup(B14,B5:B11,2)
- 最後に、Emilyの趣味を複数ご紹介します。
8.一つのExcelセルに複数の値を取得する
これまでは、複数の値を別々のセルに縦に並べて表示していましたが、複数の値を1つのセルにまとめて表示するようにします。 ここでは TEXTJOIN機能 とともに フィルター 関数を使用して、結合された複数の値を取得します。
ステップス
- まず、以下の数式を セルC14 .
=textjoin(",",true, filter(c5:c11, b5:b11=b14))
- その結果、Emilyの趣味はすべて1つのセルに横並びで表示されることになる。
ここでは テキストジョイン 関数は,趣味のリストをカンマで区切って連結する。
結論
上記の記事では、これらの方法について詳しく説明しましたが、これらの方法と説明があなたの問題を解決するのに十分であることを願っています。 もし何か疑問があれば、私に知らせてください。