web-dev-qa-db-ja.com

Excelで重複を無視して一意の値の新しいリストを作成する

重複していることが多い値の列があります。次のように、最初の列に基づいて一意の値で新しい列を作成する必要があります。

Column A   Column B  
a          a
a          b
b          c
c
c

この列Bは実際には同じワークブック内の別のシートに表示される必要があるため、sheet2!A1スタイルの形式で作業する必要があると思います。

Data/Filterメニューオプションは運が良かったのですが、これはコマンドでしか機能しないようです。新しい値が列Aに入力されるたびに自動的に更新する列Bが必要です。

71
tob88

Toteroの答えは正しいです。リンクもとても参考になります。

基本的にあなたが必要とする式は:

B2=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0))

その後を押します ctrl+shift+enter (または配列式を使用しても機能しません)。

ここで覚えておくべき2つの重要な事柄:完全なリストはセルA2:A20にあります、そしてこの式はセルB2にペーストされなければなりません(それが循環参照を与えるのでB1ではないので)。第二に、これは配列の式なので、あなたが押す必要があります ctrl+shift+enter または正しく機能しません。

62
achaudhr

これを行う方法の良いガイドがあります ここ

基本的には次のようなものです。

=INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0))
21
Totero

私の場合は、Excelの式を使っているときにExcelがフリーズしていました。

B2 = INDEX($ A $ 2:$ A $ 20、一致(0、COUNTIF($ B $ 1:B1、$ A $ 2:$ A $ 20)、0))

行が多かったため(10000)。だから私は私が以下に示す別の方法でやった。

元のリストを2列目にコピーした後、Excelの「重複の削除」機能を使用して、一意の値のリストを見つけることができました。

Microsoft Office Webサイトからコピーしたもの

Select all the rows, including the column headers, in the list 

あなたがフィルタリングしたい。

範囲の左上のセルをクリックし、右下のセルまでドラッグします。

On the Data menu, point to Filter, and then click Advanced Filter.
In the Advanced Filter dialog box, click Filter the list, in place.
Select the Unique records only check box, and then click OK.

フィルター処理されたリストが表示され、重複行は非表示になります。

On the Edit menu, click Office Clipboard.

クリップボード作業ウィンドウが表示されます。

Make sure the filtered list is still selected, and then click Copy Copy button.

フィルタ処理されたリストは境界線で強調表示され、選択範囲はクリップボードの上部に>>項目として表示されます。

On the Data menu, point to Filter, and then click Show All.

元の一覧が再表示されます。

Press the DELETE key.

元のリストが削除されます。

In the Clipboard, click on the filtered list item.

フィルタ処理されたリストは、元のリストと同じ場所に表示されます。

出典:Microsoft Office Webサイト(リンクが削除された、死亡した原因)

10
Jesús Romera

列から重複を削除する

  1. 列Aの値をソートするA A - > Z
  2. 列Bを選択
  3. 列Bが選択されたままの状態で、式入力ボックスに次のように入力します。

    =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1))
    
  4. B列がまだ選択されている間に、Edit - > Fill - > Downを選択します(新しいバージョンでは、セルB1を選択し、外側のボックスをプルダウンして列全体を下に広げます)。

:B列が別のシートにある場合は、Sheet1!A1とSheet1!A2を実行できます。

5
Allen King

ソートされた列では、このアイデアを試すこともできます。

B2=A2
B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"")

B3を貼り付けることができます。最後のユニークマッチの後、結果は0になります。これが望ましくない場合は、これを除外するためにIFステートメントを配置してください。

編集:

少なくともtext-valuesについては、IFステートメントよりも簡単です。

B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"")
5
Jook

リストを含むシートのワークシートモジュールで、次のようにします。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rngDest As Range

    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

        Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1")

        Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
            Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True

    End If

End Sub
2
Tim Williams

色の名前のリストがA2:A8の列Bにあります。色の名前の異なるリストを抽出したいのですが。

以下の手順に従ってください。

  • セルB2を選択します。リストから一意の値を取得する式を書きます。
  • =IF(COUNTIF(A$2:A2,A2)=1,A2,””)
  • 押す Enter あなたのキーボードで。
  • この関数は最初の色の名前を返します。
  • 残りのセルの値を返すには、同じ数式をコピーします。範囲B3:B8の数式をコピーするには、キーを押してセルB2の数式をコピーします。 CTRL+C キーボードで、キーを押してB3:B8の範囲に貼り付けます。 CTRL+V
  • ここであなたは私たちが色の名前のユニークなリストを持っているところの出力を見ることができます。
2
Hitesh Rathor

正直なところ、私はティーにこれらの例に従った、そして彼らは単に働かなかった。無意味にExcelを動かそうと努力した結果、コラムの内容全体をNotePad ++にコピーするだけで、すぐに簡単な解決策を見つけることができました。これを見てみましょう: Notepad ++で重複した行を削除する

編集:これはTextFXでそれを行う方法の簡単な概要です:

プラグイン - >プラグインマネージャ - >プラグインマネージャの表示 - >利用可能なタブ - > TextFX - >インストール

TextFXをNotePad ++にインストールした後、重複を削除したいテキストをすべて選択してから、必ずチェックしてください。TextFX - > TextFXツール - >ソート出力のみUNIQUE行

次に「ソートラインで大文字と小文字を区別する」または「ソートラインで大文字と小文字を区別しない」をクリックすると、一意のソートが実行されます。

0
brian cronrath

Excel 2016以降の別のアプローチは、Power Queryを使用することです。

の仕方:

  • データ(フィールド名を含む)を選択し、
  • メニューData> From a table or a rangeを使用します。
  • (ExcelはシートをExcelテーブルに変更します。これは非常に便利です)、
  • power Query Editorで、ColumnA(列ヘッダー)を右クリックし、Remove duplicates
  • メニューでClose and loadを選択し、結果を表示する場所を選択します。これで完了です like this
  • 結果テーブルを更新する場合は、右クリックしてRefreshを選択します。

利点 :

  • 手動で更新された場合にのみCPUを使用します。これは長いリストに非常に便利です。
  • 好奇心が強い場合、これは他の多くの強力なオプションを提供します。

欠点:

  • その場で更新されません(結果テーブルを右クリックして更新する必要があります)。
  • 古いバージョンのExcelを使用しているユーザーは、結果テーブルを更新できません。
0
mll
=SORT(UNIQUE(A:A))

上記の式は、列に固有の値をリストしたい場合に最適です。

0
TheOnlyAnil

検索--- ここ 上記の式とエラー制御

=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") 

ここで、(B2:B9は固有値を抽出する列データ、D1は式が配置されている上記のセルです)

0
Sergey Ryvkin

[データ]タブの[並べ替えとフィルタ]で詳細を選択します。アクションで選択:新しいリストが必要な場合は別の場所にコピー - 任意の場所にコピーするリスト範囲でレコードをオフにするリストを選択します。そして最も重要なことはチェックすることです:唯一の記録だけ。

0
Abbas

したがって、このタスクでは、まずAからZ、ZからAの順にデータを並べ替えます。次に、以下に示すように単純な式を1つ使用します。

=IF(A2=A3, "Duplicate", "Not Duplicate")

上記の式は、A2列のデータ(Aが列で2が行番号)がA3(Aが列で、3が行番号)に類似している場合、Duplicateを印刷し、そうでなければNot Duplicateを印刷します。

例を考えてみましょう。列Aは一部が重複している電子メールアドレスで構成されています。そのため、列2では、上記の式を使用しました。

重複データを取得したものは、シートにフィルタをかけるだけで、重複データのみを表示し、不要なデータをすべて削除します。

0
Sachin Joshi