目次
今回は、Microsoft Excelで複数の列から一意の値を見つける方法を紹介します。
練習用ワークブックをダウンロードする
この記事を読みながら練習できるように、以下のExcelファイルをダウンロードしてください。
複数の列の一意な値を検索する.xlsm
Excelで複数の列から一意の値を見つける5つの方法
Glory Kindergartenという学校の生徒の記録があります。
生徒のID、ファーストネーム、ラストネームをカラムに格納しています。 B , C, と D を、それぞれご紹介します。
今度は、生徒の固有名を整理してみたいと思います。
方法1:配列式で複数列から一意な値を抽出する
i. UNIQUE関数の使用
注意事項 UNIQUE機能 のみで利用可能です。 オフィス365 .
UNIQUE関数のシンタックス。
=UNIQUE(配列,[by_col],[exactly_once])とする。
- 3つの引数を取り、1つのセル範囲と呼ばれる 勢揃い という2つのブール値。 バイコル と exactly_once .
- から一意な値を返す。 勢揃い .
- もし バイコル が設定されます。 真 の列で一意な値を検索する。 この引数はオプションである。 デフォルトは 真 .
- もし exactly_once が設定されます。 真 で一度だけ現れる値を返す。 勢揃い この引数はオプションで、デフォルトは FALSE .
の両方から一意な値を抽出したい。 ファーストネーム (コラム C )と 苗字 (コラム D ).
- まず、セルを選択し、そこにこの数式を挿入します。 私はセルを選択します。 E5 と入力し、そこに入力します。
=unique(c5:d16,false,true)
ユニークネームを2つの異なるカラムで表示しているのがわかります。
- ここでは、挿入しています。 バイコル かわりに FALSE そのため、列に沿って検索することはありませんでした。
- ここでは、挿入しています。 exactly_once かわりに 真 ということで、一度だけ現れる値を返しました。
もちろん、必要であれば、これらのブーリアン値である バイコル と exactly_once をクリックしてみてください。
続きを読む Excel VBAで列から一意な値を取得する(4例)
ii. CONCATENATE関数とUNIQUE関数の組み合わせ
先ほどは、1つのセルにファーストネーム、隣のセルにラストネームを入力しましたが、例えば、Jack Morrisのように、完全な名前を1つのセルに入力する場合は、どうしたらよいでしょうか。 以下のいずれかの数式を使用します。 UNIQUE と CONCATENATE の機能を持つ。
ファースト・フォーミュラ
=unique(concatenate(c5:c16," ",d5:d16),false,true)とする。
代替式。
または、この-を使用することができます。
=UNIQUE(C5:C16&""&D5:D16,FALSE,TRUE)です。
スペース( )で区切られた1つの列に、完全な固有名詞を抽出したことがわかります。
続きを読む Excelで列の一意な値を見つける(6つの方法)
iii. UNIQUE、CONCATENATE、FILTER関数を使った条件に基づく一意な値の抽出
ここで、IDが150以上の生徒の固有名を抽出したいとします。 どうすればよいでしょうか。
を使って行うことになります。 UNIQUE と フィルター の機能を持つ。
注意事項 があります。 フィルター 関数は オフィス365 .
FILTER関数のシンタックス。
=FILTER(array,include,[if_empty])です。
- 3つの引数を取ります。 の配列になります。 という1つのブーリアン条件。 含む という1つの値。
- の値を返します。 勢揃い が指定する条件を満たすもの。
- のいずれかの値であれば 勢揃い が指定した条件を満たさない場合 含む という値を返します。 if_empty を設定します。 if_empty はオプションであり、デフォルトでは "no result "である。
ここで、IDが150より大きい学生の固有名を抽出したいと思います。
- ということで、私たちの計算式は次のようになります。
=UNIQUE(FILTER(C5:D16,B5:B16>150, "no result"),FALSE,TRUE)
ユニークネームのファーストネームとラストネームを抽出しているところをご覧ください。
- また、1つのセルに含まれる完全な固有名を抽出したい場合は、次の式を使用します。
=UNIQUE(FILTER(CONCATENATE(C5:C16," ",D5:D16),B5:B16>150, "結果なし"),FALSE,TRUE)
続きを読む Excelで条件に基づいて一意の値を抽出する方法
方法2:条件付き書式を使用して重複する値を強調表示する
この新しいデータセットを見てみましょう。 3つの列がありますが、すべて同じタイプのデータです。
栄光幼稚園の園児たちのニックネームが決まりましたので、次はその園児たちのユニークな名前を調べてみましょう。
どうすればいいのでしょうか。
条件付き書式を使って、重複する値を強調表示することができるので便利です。
📌ステップス。
- まず、セルの範囲を選択します。
- その後 ホーム> 条件付き書式設定> 強調表示ルール> 値が重複している。
- という小さなボックスが表示されます。 Duplicate Values(値の重複)。
- そこから任意の色を選択し、重複する値を強調します。 私は緑を選択しています。
方法3:配列のない数式を使用してExcelの列から一意の値を抽出する
配列でない数式を使用するには、以下の組み合わせが必要です。 イフエラー , LOOKUP と COUNTIF 関数を使用します。 計算式を適用するには、次の手順を実行します。
📌ステップス。
- 任意のセルを選択する。
- そして、次の式を挿入します。
=ferror(iferror(lookup(2, 1/(countif($f$4:f4,$b$5:$b$11)=0), $b$5:$b$11), lookup(2, 1/(countif($f$4:f4, $c$5:$c$9)=0), $c$5:$c$9)), lookup(2, 1/(countif($f$4:f4, $d$5:$d$12)=0), $d$5:$d$12)))
- ここでは、それを挿入しています。 セルF5 .
- その後、Fill Handleをドラッグすると、ユニークな名前を見つけることができます。
注
ここでは、コラムに代えて B , C, と D は、お好みのものをお使いください。
方法4:ピボットテーブルを使用して2つ以上の列から一意に識別されるリストを抽出する
また、ピボットテーブルツールを使用して、2つ以上の列から一意のリストを作成することもできます。 そのためには、以下の手順を適用してください。
📌ステップス。
- プレス Alt + D .
- 次に、 を押します。 P をすぐに手に入れることができます。 ピボットテーブルとピボットチャートのウィザード をオープンしました。
- 選択 複数の連結範囲 と ピボットテーブル のボタンをクリックします。
- をクリックします。 次のページ に移行することになります。 3 のステップ 2a .
- 選択 1ページのフィールドを作成する ボタンをクリックします。
- をクリックします。 次のページ に行くことになります。 ステップ2b .
- での レンジ ボックスで、左側に空の列があるセルの範囲を選択します。
- ここでは、セルを選択しています B5~D12 .
- をクリックします。 追加する。 選択したセルが 全てのレンジ ボックスを使用します。
- をクリックします。 次のページ に移行することになります。 ステップ 3 .
- での 既存のワークシート を表示させたいセルを書いてください。 ピボットテーブル ........................書く $F$4.
- をクリックします。 仕上がり .ピボットテーブルが作成されます。
- での レポートに追加するフィールドを選択 部、無印 列 , コラム , 価値 , 1ページ目 .
- そして、チェックを入れて 価値 で固有名を取得します。 ピボットテーブル .
方法5:VBAコードを使用して一意な値を検索する
最後に、VBAのコードを使って、データセットから固有名を抽出することもできます。 以下のようにしてください。
📌ステップス。
- プレス Alt + F11 をクリックすると、ワークブックが開きます。 ブイビーエー ウィンドウに表示されます。
- その後 インサート のタブをクリックします。 ブイビーエー ツールバーをクリックします。
- 4つの選択肢の中から、以下を選びます。 モジュール .
新しい モジュール ウィンドウに表示されます。
- そこに以下のコードを書いてください。
Sub Uniquedata() Dim rng As Range Dim InputRng As Range, OutRng As Range Set dt = CreateObject("Scripting.Dictionary") xTitleId = "Select Range" Set InputRng = Application.Selection Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8) Set OutRng = Application.InputBox("Output to (single cell) :", xTitleId, Type:=8) For Each rng In InputRng If rng.Value "" Thendt(rng.Value) = "" End If Next OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys) End Sub
この 敷地 を理解し、コードを開発することに貢献しました。
- として保存します。 Excelマクロを有効にしたワークブック。
- その後、元のワークシートに戻ってください。 Press Alt + F8 .
- を手に入れることができます。 マクロ ボックスが開きました。
- の名前を選択します。 マクロ をクリックし 実行 .
- ここでは、この名前を マクロ でございます ユニークデータ .
- にデータの範囲を入力します。 レンジ ボックスを使用します。
- をクリックします。 よっしゃー 別の入力ボックスが表示されます。
- 一意名が必要な最初のセルを入力します。 私はセルを入力します。 F5 .
- をクリックします。 OKです。 データセットからユニークな名前を得ることができます。
続きを読む エクセルで範囲から一意な値を取得する方法(8つのメソッド)
結論
これらの方法を使用すると、同じまたは異なるタイプのデータの両方を持つ複数の列から、Excelで一意の値を見つけることができます。 さらに質問がある場合は、コメントを残してください。 ブログ をクリックすると、MS Excelのさまざまなトピックについて詳しく知ることができます。