Excelで複数列から一意の値を抽出するにはどうすればよいですか?

いくつかの列に複数の値があり、同じ列内または異なる列間で一部の値が重複しているとします。ここで、すべての列にわたって一意の値を特定する必要があります。Excelでこれらの複数列から一意の値を抽出する簡単な方法はありますか?効率的な解決策を探してみましょう。
数式を使用して複数列から一意の値を抽出する
このセクションでは、すべてのExcelバージョンに適した配列数式と、Excel 365専用の動的配列数式の2つの数式について説明します。
すべてのExcelバージョン向けの配列数式を使用して複数列から一意の値を抽出する
どのバージョンのExcelユーザーでも、配列数式は複数列から一意の値を抽出するための強力なツールです。以下にその方法を示します:
1. 範囲 A2: C9 に値があると仮定し、次の数式をセル E2 に入力してください:
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
2. Shift + Ctrl + Enter キーを同時に押してから、空白セルが現れるまでフィルハンドルをドラッグして一意の値を抽出します。スクリーンショットをご覧ください:
- $A$2:$C$9: これはチェック対象のデータ範囲を指定しており、A2 から C9 のセルを指します。
- IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
- $A$2:$C$9<>"" は、範囲内のセルが空でないかどうかを確認します。
- COUNTIF($E$1:E1,$A$2:$C$9)=0 は、これらのセルの値がまだ E1 から E1 の範囲にリストされていないかどうかを判断します。
- 両方の条件が満たされている場合(つまり、値が空ではなく、列 E にまだリストされていない場合)、IF 関数はその行と列に基づいて一意の番号を計算します(ROW($2:$9)*100+COLUMN($A:$C))。
- 条件が満たされていない場合、関数はプレースホルダーとして大きな数値(7^8)を返します。
- MIN(...): 上記の IF 関数によって返された最小の数値を見つけ、次のユニークな値の位置に対応します。
- TEXT(...,"R0C00"): この最小の数値を R1C1 形式のアドレスに変換します。書式コード R0C00 は、数値を Excel セル参照形式に変換することを示します。
- INDIRECT(...): 前のステップで生成された R1C1 形式のアドレスを通常の A1 形式のセル参照に戻すために INDIRECT 関数を使用します。INDIRECT 関数は、テキスト文字列の内容に基づいたセル参照を可能にします。
- &"": 数式の最後に &"" を追加することで、最終出力をテキストとして扱うことを保証します。これにより、数字もテキストとして表示されます。
Excel 365、Excel 2021、および新しいバージョン向けの数式を使用して複数列から一意の値を抽出する
Excel 365、Excel 2021、および新しいバージョンは動的配列をサポートしており、複数列から一意の値を抽出するのが非常に簡単になります:
結果を配置したい空白セルに次の数式を入力またはコピーし、Enter キーを押して一度にすべての一意の値を取得します。スクリーンショットをご覧ください:
=UNIQUE(TOCOL(A2:C9,1))
Kutools AI アシスタントを使用して複数列から一意の値を抽出する
「Kutools AI アシスタント」の力を活用して、Excel の複数列からシームレスに一意の値を抽出しましょう。数回のクリックだけで、このインテリジェントなツールがあなたのデータを精査し、選択した範囲全体から一意のエントリを特定してリスト化します。複雑な数式や VBA コードの手間を忘れて、「Kutools AI アシスタント」の効率性を活用し、Excel ワークフローをより生産的でエラーのないものに変えてください。
Kutools for Excel のインストール後、「Kutools AI」>「AI アシスタント」をクリックして「Kutools AI アシスタント」ペインを開きます:
- チャットボックスに要件を入力し、「送信」ボタンをクリックするか Enter キーを押して質問を送信します;
「範囲 A2:C9 から一意の値を抽出し、空白セルを無視して、結果を E2 から開始して配置します:」 - 分析後、「実行」ボタンをクリックして実行します。Kutools AI アシスタントは AI を使用してリクエストを処理し、指定されたセルに直接結果を返します。
ピボットテーブルを使用して複数列から一意の値を抽出する
ピボットテーブルに精通している場合、以下の手順で複数列から簡単に一意の値を抽出できます:
1. 最初に、データの左側に新しい空白列を挿入します。この例では、元のデータの隣に列 A を挿入します。
2. データ内のセルをクリックし、「Alt+D」キーを押してからすぐに「P」キーを押して「ピボットテーブルとピボットチャートウィザード」を開き、ウィザード ステップ1で「複数の統合範囲」を選択します。スクリーンショットをご覧ください:
3. 次に「次へ」ボタンをクリックし、ウィザード ステップ2で「単一ページフィールドを作成する」オプションをチェックします。スクリーンショットをご覧ください:
4. 「次へ」ボタンを続けてクリックし、左側の新しい列を含むデータ範囲を選択して「追加」ボタンをクリックし、データ範囲を「すべての範囲」リストボックスに追加します。スクリーンショットをご覧ください:
5. データ範囲を選択後、「次へ」を続けてクリックし、ウィザード ステップ3でピボットテーブルレポートを配置する場所を選択します。
6. 最後に「完了」をクリックしてウィザードを終了すると、現在のワークシートにピボットテーブルが作成されます。そして、レポートに追加するフィールドを選択するセクションからすべてのフィールドのチェックを外します。スクリーンショットをご覧ください:
7. 次に、フィールド Value をチェックするか、Value を「行」ラベルにドラッグすると、複数列から一意の値が次のように取得されます:
VBAコードを使用して複数列から一意の値を抽出する
以下の VBA コードを使用して、複数列から一意の値を抽出することもできます。
1. 「ALT + F11」キーを押すと、「Microsoft Visual Basic for Applications」ウィンドウが開きます。
2. 「挿入」>「モジュール」をクリックし、モジュールウィンドウに次のコードを貼り付けます。
VBA: 複数列から一意の値を抽出する
Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
If rng.Value <> "" Then
dt(rng.Value) = ""
End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub
3. 次に、このコードを実行するために F5 キーを押すと、使用したいデータ範囲を選択するように促すダイアログボックスが表示されます。スクリーンショットをご覧ください:
4. 「OK」をクリックすると、結果を配置する場所を選択する別のダイアログボックスが表示されます。スクリーンショットをご覧ください:
5. このダイアログを閉じると、すべての一意の値が一度に抽出されます。
関連記事:
- リストから一意および異なる値の数をカウントする
- 例えば、重複項目のある長いリストがあり、リストに1回しか出現しない値(一意の値)またはリスト内のすべての異なる値(一意の値 + 最初の重複値)の数を数えたいとします。この記事では、Excelでこのタスクをどのように処理するかについて説明します。
- Excelで基準に基づいて一意の値を抽出する
- 例えば、以下のデータ範囲があり、列Aの特定の基準に基づいて列Bの一意の名前のみをリストしたいとします。Excelでこのタスクを迅速かつ簡単に処理するにはどうすればよいですか?
- Excelでのみ一意の値を許可する
- ワークシートの列に重複を防ぎ、一意の値のみを入力させたい場合、この記事ではこのタスクを処理するためのいくつかの簡単な方法を紹介します。
- Excelで基準に基づいて一意の値を合計する
- 例えば、名前と注文の列を含むデータ範囲があり、名前列に基づいて注文列の唯一の値を合計したいとします。Excelでこのタスクを迅速かつ簡単に解決するにはどうすればよいですか?
最高のオフィス生産性ツール
🤖 | Kutools AI アシスタント: データ分析を革命化する: インテリジェント実行 | コード生成 | カスタム数式の作成 | データを分析しグラフを生成 | 拡張機能を呼び出す… |
人気の機能: 重複を見つけてハイライトまたはマーキング | 空白行を削除 | データを失わずに列またはセルを統合 | 丸める ... | |
スーパーLOOKUP: 複数条件のVLookup | 複数値のVLookup | 複数シートの検索 | ファジーマッチ .... | |
高度なドロップダウンリスト: ドロップダウンリストを迅速に作成 | 依存ドロップダウンリスト | マルチセレクトドロップダウンリスト .... | |
列管理: 特定の数の列を追加 | 列を移動 | 非表示列の可視ステータスを切り替え | 範囲と列を比較 ... | |
注目の機能: グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブック & ワークシート管理 | オートテキスト ライブラリ (Auto Text) | 日付ピッカー | データの統合 | セルの暗号化/復号化 | リストで電子メールを送信 | スーパーフィルター | 特殊フィルタ (太字/斜体/取り消し線をフィルタリング...) ... | |
トップ15のツールセット: 12 のテキストツール (テキストの追加, 特定の文字を削除, ...) | 50以上 のグラフ の種類 (ガントチャート, ...) | 40以上の実用的な 数式 (誕生日に基づいて年齢を計算する, ...) | 19 の挿入ツール (QRコードの挿入, パスから画像を挿入, ...) | 12 の変換ツール (単語に変換する, 通貨変換, ...) | 7 の統合 & セルの分割ツール (高度な行のマージ, セルの分割, ...) | ...さらに多く |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、300以上の高度な機能を提供し、生産性を向上させ、保存時間を節約します。 最も必要な機能を入手するにはここをクリック...
Office TabはOfficeにタブインターフェイスをもたらし、作業を非常に簡単にします
- Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付きの編集と読み取りを有効にします。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を50%向上させ、毎日数百回のマウスクリックを減らします!