目次
Excelで作業していると、ときどき 列の一意な値 例えば、あるお店の在庫にある商品の個数を調べたり、大企業の全従業員に関する情報を含むExcelシートに存在する従業員名の個数を調べたりする必要があるかもしれません。 このチュートリアルでは、Excelの範囲から一意の値を取得する複数の方法について説明します。
練習用ワークブックをダウンロードする
この練習帳をダウンロードして、この記事を読みながら課題を実行してください。
Excelの固有値.xlsmExcelで範囲から一意な値を取得する8つの簡単な方法
ある国がヨーロッパのさまざまな国に輸出している製品に関する情報を含むExcelファイルがあるとします。 製品 名、エクスポートされた 金額です。 とのことです。 国名 この国が輸出するすべての製品と、その製品を輸出する個別の国を、以下の方法で調べます。 アドバンストフィルター、INDEX と MATCH 式 相共に , ルックアップ と COUNTIF を一緒に機能させることができます。 UNIQUE 関数( Excel 365 ), ブイビーエー マクロ、そして 複製を削除する 下の画像は、これから作業するExcelワークシートです。
1.範囲から一意な値を取得する高度なフィルター
を使用することができます。 アドバンストフィルター の下に データ リボンを使用して、範囲または列のすべての一意の値を取得します。 次の操作を行います。
ステップ1.
- まず データ . 選択 アドバンスト から ソート&フィルター のセクションをご覧ください。
- というタイトルの新しいウィンドウが表示されます。 アドバンストフィルター が表示されます。 別の場所にコピーする かわりに アクション .
- での リスト範囲 ボックスで、一意な値を抽出したい範囲を選択します。 この例では、以下のように一意な、あるいは異なる製品をすべて取得しようとしています。 製品 列( B5:B20 ) で、私たちの リスト範囲 であろう B$5:$B$20 . $ 記号を挿入して、セル参照を絶対化しています。
- での コピー先 ボックスで、ユニークな値を格納する範囲を選択します。 E5:E20 .タイトルのボックスにチェックを入れる 一意なレコードのみ .
- クリック よっしゃー .
ステップ2.
- をクリックすると よっしゃー で、すべての異なる製品を入手することができます。 ユニークな製品 列( E5:E20 ).
続きを読む エクセルでリストからユニークな項目を抽出する方法(10の方法)
2.範囲から一意な値を取得するためにINDEXとMATCH式を挿入する
また、エクセル INDEX と MATCH これらの関数を使用して、範囲や列から一意な値を取得するには、次の手順に従います。
ステップ1.
- セレクトセル E5 以下の数式をセルに書き込んでください。
=index(b5:b20,match(0,countif($e$4:e4,b5:b20),0))である。
計算式の説明
この式の原動力は INDEX 関数で、基本的なルックアップを行います。
=INDEX(array, row_num, [column_num])
INDEX 関数には2つの必須引数があります。 勢揃い と 行番号 .
ということで、提供する場合は INDEX 関数で、配列やリストを 第一引数 として、行番号を指定します。 再議論 を指定すると、ユニークリストに追加される値が返されます。
提供させていただきました。 B5:B20 を最初の引数として与えます。 INDEX として機能します。 再議論 または 行番号 を選択しなければならない。 行番号 のように、一意な値だけを取得するように注意してください。
を使って実現します。 COUNTIF 関数を使用します。
=countif($e$4:e4,b5:b20)
COUNTIF 関数は、ユニーク商品列のアイテムが、ソースリストである商品列に何回現れるかをカウントします。
を使用することになります。 拡大参照 この場合 E$4:E4 このシナリオでは、数式がコピーダウンされると、参照が拡張され、ユニークリストの多くの行が含まれるようになります。
配列ができたので、次は行番号を探します。 ゼロの値を探すには MATCH 関数で、正確に一致するように設定されています。 もし、この関数で MATCH で、COUNTIF で生成された配列を結合する。 MATCH 関数は,カウントが0になるように検索しながら項目を探します。 重複がある場合。 MATCH は常に最初のマッチを返します。 ですから、これはうまくいくでしょう。
最後に INDEX は行番号で位置を指定し、INDEXはその位置の名前を返す。
注 これは、配列の式です。 ですから、この式で ctrl+shift+エンター を一緒に入力すると、数式がセルに挿入されます。 数式全体を2つの中括弧で囲みます。ステップ2.
- 数式を入力すると、値が表示されます。 アップル 細胞内 E5 残りのセルに数式を適用するために、塗りつぶしハンドルを下方向にドラッグします。
- フィルハンドルを解放した後、すべての一意な値を ユニークな製品 .
続きを読む Excelで列から配列に一意な値を取得するVBA(3つの基準)
3.INDEX式とMATCH式を適用して、空のセルで一意の値を取得する
一意な値を抽出したい範囲に、空のセルがある場合があります。 このような場合、空のセルを考慮に入れて数式を少し修正する必要があります。 例えば、範囲からいくつかの製品を削除しました。 下の画像は、製品列に空のセルがある修正したExcelシートを示しています。
ここでは、以下の手順で、空のセルを持つこの範囲から一意な値を取得することにします。
ステップ1.
- まず、以下の数式をCellに書き出します。 E5 .
=index(b5:b20, match(0,if(isblank(b5:b20),1,countif($e$4:e4, b5:b20)), 0))
注 これは、配列の式です。 ですから、この式で ctrl+shift+エンター を一緒に入力すると、数式がセルに挿入されます。 数式全体が2つの中括弧で囲まれます。
ステップ2.
- 数式を入力すると、値が表示されます。 アップル 細胞内 E5 残りのセルに数式を適用するために、塗りつぶしハンドルを下方向にドラッグします。
- フィルハンドルを解放した後、すべての一意な値を ユニークな製品 .
4.LOOKUP式とCOUNTIF式を使って、範囲から一意の値を取得する
また、エクセル ルックアップ と COUNTIF これらの関数を使用して、範囲や列から一意な値を取得するには、次の手順に従います。
ステップ1.
- セレクトセル E5 以下の数式をセルに書き込んでください。
=lookup(2,1/(countif($e$4:e4,$b$5:$b$20)=0)),$b$5:$b$20)
計算式の説明
その構造は、上記のINDEXとMATCHの組み合わせの式と同様であるが ルックアップ は配列操作をネイティブに扱います。 ルックアップ 関数は3つの引数を正確に受け取ります。
=LOOKUP(lookup_value, lookup_vector, [result_vector])
COUNTIF は,拡張範囲内の各値のカウントを生成する。 E$4:E4 圏外 B$5:$B$20 そして,各値のカウントが0と比較され,各値からなる配列が生成されます. 真 と ファルス の値が生成されます。
そして、数値1を配列で割った結果、配列が 1 や #DIV/0 この配列が 再議論 または ルックアップ_ベクター に対して ルックアップ 関数を使用します。
があります。 ルックアップバリュー または 第一引数 の ルックアップ 関数は 2 がマッチングします。 ルックアップ .
ルックアップ の対応する値を返します。 結果ベクトル または 第三引数 この場合、第3引数または 結果ベクトル でございます B$5:$B$20 .
備考 これは、配列によらないユニークな値の取得方法です。 そのため、以下のボタンを押す必要はありません。 CTRL , SHIFT そして エンタメ を押すだけでよいのです。 エンタメ キーになります。ステップ2.
- 数式を入力すると、値が表示されます。 アップル 細胞内 E5 残りのセルに数式を適用するために、塗りつぶしハンドルを下方向にドラッグします。
- フィルハンドルを解放した後、すべての一意な値を ユニークな製品 .
5.LOOKUP式とCOUNTIF式を実行し、一度だけ現れるユニークな値を取得する
また、この同じ数式を少し修正して、範囲内で一度だけ現れる固有の値を取得することもできます。 たとえば、Excelワークシートを修正して、製品 ブルーベリー と キャロット ワークシートに一度だけ現れるこの2つのユニークな値を取得するために、次の手順を実行します。
ステップ1.
- まず、セルを選択します。 E5 以下の数式をセルに書き込んでください。
=lookup(2,1/((countif($e$4:e4,$b$5:$b$20)=0)*(countif($b$5:$b$20,$b$5:$b$20)=1))),$b$5:$b$20)
ステップ2.
- 数式を入力すると、値が表示されます。 キャロット 細胞内 E5 残りのセルに数式を適用するために、塗りつぶしハンドルを下方向にドラッグします。
- フィルハンドルを離すと、セルに一度だけ現れる2つのユニークな値が得られる E5 と E6 の下に ユニークな製品 その下の残りのセルには、以下のように表示されます。 #該当なし これらのセルの内容を消去します。
6.UNIQUE関数で範囲内の一意な値を取得する
マイクロソフト Excel 365 という関数があります。 UNIQUE この関数は、引数として受け取った特定の範囲や列における一意な値のリストを返します。 ここでは、以下の手順に従って 国名 カラムを使用しています。 UNIQUE での機能 Excel 365 .
ステップ1.
- セレクトセル E5 以下の数式をセルに書き込んでください。
=一意(d5:d20)
ステップ2.
- 上記範囲 D5:D20 は 国名 ということで、すべての固有国名を UNIQUE を押すと エンタメ を使用すれば、すべてのユニークな国を取得することができます。 ユニークな国 の欄があります。
続きを読む エクセルUNIQUE関数の使い方(20例)
7.ExcelでVBAマクロコードを実行し、範囲内の一意の値を取得する
また、非常に簡単ではありますが、より効果的な方法として、範囲内のすべての一意な値を取得するために ブイビーエー VBAのマクロは、以下のようなアプローチをとります。 アドバンストフィルター において 方法1 今回は、アドバンストフィルターを自分で適用する代わりに VBAマクロ これから、以下の手順を実行します。
ステップ1.
- を選択することになります。 ビジュアルベーシック から デベロッパー を押すこともできます。 ALT+F11 をクリックすると開きます。
- ここで、「」をクリックします。 インサート ボタンを押し、選択します。 モジュール .
ステップ2.
- 表示されたウィンドウに、次のコードを書き込んでください。
Option Explicit Sub GetUniqueValues() Dim lastrow As Long lastrow = Cells(Rows.Count, "B").End(xlUp).Row ActiveSheet.Range("B5:B" & lastrow) .AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=ActiveSheet.Range("E5"), _ Unique:=True End Sub
- 最後に 実行 ボタンを押すと、コードが実行されます。
- のユニークな製品をすべて手に入れることができます。 ユニークな製品
8.エクセルで重複を削除し、範囲内の一意な値を取得する
これらのメソッドのうち、範囲から一意な値を取得する最も簡単な方法は 複製を削除する Excel の [重複の削除] オプションを使用して、範囲内の一意の値を取得するには、次の操作を行います。
ステップ1.
- まず、以下のセルをすべて選択します。 国名 の範囲です。 国名 列は D5:D20 .そこで、範囲を選択し、コピーすることにします。
- そして、それを隣の ユニークな国 . 複製を削除する の機能は、範囲内の重複する値をすべて削除します。 しかし、元データはそのままにしておきたいと思います。 そこで、範囲のコピーを ユニークな国 の列を作成し、実行します。 複製を削除する の運用を開始しました。
ステップ2.
- がある一方で ユニークな国 カラムが選択されている場合は 複製を削除する オプションを指定します。 データ タブで表示します。
- というタイトルの新しいウィンドウが表示されます。 重複削除の警告 が表示されるので、それを選択します。 現在の選択を継続する に対してのみ、この操作を行います。 ユニークな国 の欄があります。 だから、私たちは 選択範囲を拡大する .
- 次に 複製を削除する .
- では、私たちの ユニークな国 のみである。 4 その中にある、独特の、あるいはユニークな国々。
覚えておきたいこと
- があります。 INDEX と MATCH 関数の組み合わせは、配列式になります。 そのため、以下のボタンを押す必要があります。 ctrl+shift+エンター を一緒に入力すると、数式がセルに挿入されます。 数式全体を2つの中括弧で囲みます。
- 使用中 複製を削除する を選択し、その範囲からユニークな値を取得するようにしました。 ユニークな国 しかし、さらに列を追加したり、すべての列を選択して 選択範囲を拡大する しかし、選択範囲を拡張してさらに列を追加すると 複製を削除する は、どのような値も削除しません。 同じデータを持つ行が2つ以上見つからなければ .
結論
この記事では、我々は、Excelの範囲から一意の値を取得する方法を学びました。 私はあなたが今後、Excelの範囲から一意の値を取得することは非常に簡単に見つけることを願っています。 しかし、あなたはこの記事についてのクエリまたは勧告がある場合は、以下のコメントを残してください。 素晴らしい一日を過ごす!!!