Excelで複数の列から一意な値を見つける方法

  • これを共有
Hugh West

今回は、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のさまざまなトピックについて詳しく知ることができます。

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