Excelの重複チェック方法

このQ&Aのポイント
  • ExcelのA列とB列に重複がないかチェックする関数を教えてください。
  • 重複として、ABとBAを同じとして認識するような関数が必要です。
  • チェック結果は、重複のセルには「重複」と表示し、重複でないセルには空欄になるように希望しています。
回答を見る
  • ベストアンサー

Excel2列の重複チェック(左右逆も)

1 A B 2 C D 3 E F 4 G H 5 D H 6 B A 7 A B 8 Z N 9 A C ExcelのA列B列に上記のようにアルファベットが記載されているとします。 このときに列ごとに重複が無いかをチェックする関数をご教授頂きたく思います。 単純な重複だけではなく、 ABもBAも同じとして認識するような関数を希望しております。 データの結果として 1 A B 2 C D 3 E F 4 G H 5 D H 6 B A 重複 7 A B 重複 8 Z N 9 A C このように記載されるか 1 A B 2 C D 3 E F 4 G H 5 D H 6 7 8 Z N 9 A C このようにデータが消えるかのどちらかのデータがでる形だと助かります。 関数で実現できるのかどうか色々調べましたがまったくわからず、こちらの 方々に助けていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

あぁ、最初のABが重複じゃないのは間違いじゃなかったんですかね。説明も無かったのでタダの書き漏らしだと判断してました。 C1: =IF(COUNTIFS($A$1:A1,A1,$B$1:B1,B1)+COUNTIFS($A$1:A1,B1,$B$1:B1,A1)>1+(A1=B1),"重複","") 以下コピーとかで。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

No.2です。すみません。検証したら式が少し違ってました。 =IF(SUMPRODUCT(((($A$1:$A1&$B$1:$B1=$A1&$B1)+($A$1:$A1&$B$1:$B1=$B1&$A1)-($A$1:$A1=$B$1:$B1))>0)*1)>1,"重複","") が正解です。 これで A A の様にA,B列が同じアルファベットでも最初の行を除いて重複がでます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

関数で消すのは出来ません。やるとしたら条件付き書式でセルの背景色と文字色を同じにして見えなくする位ですね。 重複とC列に表示でいいなら、C1の数式は =IF(SUMPRODUCT(($A$1:$A1&$B$1:$B1=$A1&$B1)+($A$1:$A1&$B$1:$B1=$B1&$A1)-($A$1:$A1=$B$1:$B1))>1,"重複","") でこれを下方にコピーしてください。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ご利用のエクセルのバージョンが不明ですが、エクセル2007以降を使い C1: =IF(COUNTIFS(A:A,A1,B:B,B1)+COUNTIFS(A:A,B1,B:B,A1)>1,"重複","") 以下コピーします。

関連するQ&A

  • Excelの順不同の難しい重複チェックについて

        列A     列B     列C    列D     列E     列F     列G     列H 行1  愛      青      パンチ                            行2  愛      勇気     友達   BB    AA    CC            行3  勇気     愛      友達   AA    CC    BB            行4  勇気     弁護士    正義                             行5  勇気     愛                                     行6  コイ     ダイス    ダチ                             行7  ダイス    ダチ     コイ                             行8  友達     愛      勇気   CC    AA    BB 上記のような6列のデータ(データによってはB列で終わっていることもあります。) の順不同で行での重複をチェックする関数を知りたいです。 行2、3、8と行6、7が順番は違いますが同じデータなので重複と出したいです。 こちらのサイトで色々聞いたので、3列の場合には E1に↓を入れて下にコピー =IF(COUNTA(A1:C1)=0,"",A1&"_"&B1&"_"&C1&"_"&COUNTA(A1:C1)) D1に↓を入れて下にコピー =IF(SUMPRODUCT(1*(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E$1:E1,A1,""),B1,""),C1,"")="___"&COUNTA(A1:C1)))>1,"重複","") 上記のように教わり、6列のデータが出てきてしまったので それに対応できるように、 列G1行目に =IF(COUNTA(A1:F1)=0,"",A1&"_"&B1&"_"&C1&"_"&D1&"_"&E1&"_"&F1&"_"&COUNTA(A1:F1)) こちらの関数を入れ下にドラッグし、 列H1行目には =IF(SUMPRODUCT(1*(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(H$1:H1,A1,""),B1,""),C1,""),D1,""),E1,""),F1,"")="___"&COUNTA(A1:F1)))>1,"重複","") 上記のように関数を追加したのですが、下記のような欲しいデータがどうしても出てきません。     列A     列B     列C    列D     列E     列F     列G     列H 行1  愛      青      パンチ                            行2  愛      勇気     友達   BB    AA    CC            行3  勇気     愛      友達   AA    CC    BB    重複      行4  勇気     弁護士    正義                             行5  勇気     愛                                     行6  コイ     ダイス    ダチ                     重複      行7  ダイス    ダチ     コイ                     重複      行8  友達     愛      勇気   CC    AA    BB    重複      3列の時にはできた関数なので6列も可能だと思うのですが何がいけないのか調べていたら こんな時間になってしまい、助けをお願いしたく再度書き込みしております。 何卒よろしくお願いいたします。

  • 「1列に500行並んだデータを5列毎に改行」の逆

    いつもお世話になります。 http://okwave.jp/qa/q7073912.html これの逆に近いことができる関数がわかる方いらっしゃいますか? 図にすると、下記のような状態です。 A1 B1 C1 D1 E1 F1 A2 B2 C2 D2 E2 F2 ・・・・・・ A100 B100 C100 D100 E100 F100 のようにデータを入力していくと G1=A1 G2=B1 G3~ G4 G5 G6=F1 G7=A2 : : G10000 というような感じで、自動的にデータがコピーされていくような感じです。 入力済みのデータではなく、 入力していくと、データがコピーされて反映されていくような感じです。 この状態にできるG列の数式がわかる方がいらっしゃいましたら、 お知恵をお貸し頂けましたら幸いです。 よろしくお願い致します。

  • 関数で、最大値のあるセルの列を表示したい

    エクセルの関数について教えてください。 セルH1に関数を使って、列A、列C、列E、列Gの最大値を出しました。 その下のH2のセルに、関数を使って、列A、列C、列E、列Fの最大値のある列(A,B,C,Dのいずれか)を表記させたいのですが(下記のように)、可能でしょうか?   A B C D E F G H 1 10 ※ 28 ※ 66 ※ 26 99 2 56 ※ 29 ※ 89 ※ 28 A 3 99 ※ 12 ※ 66 ※ 10 (列Hが上記のようになるようにしたいのです。)

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • 期間内での重複の確認

    いつもお世話なります。 WINDOWS7 EXCELL2010です。 下図を参考に A列 ユーザ定義 mm/dd B列 ユーザ定義 mm/dd 各列の数式は E2 =A2&C2&D2 F2 =B2&C2&D2 G2 =IF(D2="","",IF(COUNTIF($E$2:E2,E2)>1,"重複","")) H2 =IF(D2="","",IF(COUNTIF($F$2:F2,F2)>1,"重複","")) I2 =IF(D2="","",IF(COUNTIF($E$2:F2,E2)>1,"重複","")) 条件付書式 範囲はA2:B10 =$I2=”重複” 紫 =$G2=”重複” 薄青 =$H2=”重複” 薄ピンク という具合に「入所(A列)、退所(B列)」日での重複はセルの色で確認できますが 6の行は「入所、出所」日は対象にはなりません。 重複のチェックから漏れます。 この期間内の重複を防止したいのですが何かいい方法をご教示いただけませんでしょうか。 よろしくお願いします。

  • リストのデータを重複なしでランダムに抽出する

    シート1に下記のように14種類の名前リストがあります     A 1   A 2   B 3   C 4   D 5   E 6   F 7   G 8   H 9   I 10  J  11  K 12  L 13  M 14  N 上記の名前を下記のように別シートの数列おきの列(行は同一)に重複なしに行毎にランダムに抽出する事が関数で出来るでしょうか?(エクセルは2010です) ちなみに下記は一列おきのセルに抽出した例です   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA 1 D   L   K    I    A   M   N    B   H   J    C    F    E   G 2 K   J   M   H    I   G   F    E   D    A    B   N   C    L 3 E   J   A    L   B   M    K   C   N    G    F   D    H   I どなたか教えていただける方がおりましたらよろしくお願いします。

  • VBAで重複しないデータを1列縦に並べたいです。

    下記の様にC,E,G,Iに文字(主に地名)を入力した後にVBAでA列に重複しない文字だけ縦に並べて行きたいのですがご教授頂けませんでしょうか。 B,D,F,H,Iは備考として自由記入したいので対象外にしたいです。 説明が難しいのですがA1から横に検索し重複しない文字や数字のみA列上から詰めて転記するイメージとなります。度々入力値が変更される事もあるので実行ボタンを設置してVBAで処理出来たら助かります。どうぞ宜しくお願い致します。 A, B, C, D, E, F, G, H, I, j 111 111 222 111 333 222 111 111 222 444 333 666 555 333 777 444 999 222 333 888 666 555 777 999 888

  • 【エクセル】データの重複チェック

    次のようなデータが入力されているとします。 A列/B列/C列/D列/E列/F列 1行:都道府県/市区町村/data1/check1/data2/check2 2行:東京/新宿/1/""/1/"" 3行:東京/新宿/2/""/2/"重複" 4行:東京/新宿/3/""/3/"" 5行:東京/渋谷/1/重複/4/"" 6行:東京/渋谷/2/""/5/"" 7行:東京/渋谷/3/""/6/"" 8行:東京/渋谷/4/""/2/"重複" 9行:東京/渋谷/1/重複/7/"" ここで、check1は、 「都道府県」のグループでdata1に重複があれば、「重複」表示をさせます。 また、check2は、 「市区町村」のグループでdata2に重複があれば、「重複」表示をさせます。 例えば、 セルD2=IF(COUNTIF($C$2:$C$4,$C$2:$C$4)>1,"重複","") セルF2=IF(COUNTIF($E$2:$E$9,$E$2:$E$9)>1,"重複","") というように関数を入力して、2行目以下にコピペすればいいのですが、 実際は1万行以上のデータがあり、「都道府県」「市区町村」も多くのグループがあるため いちいち範囲を指定するのも大変です。 そこで、上記関数のように手動で範囲を指定しなくても、 自動で範囲指定をして重複チェックができる良い方法があれば教えてください。 できれば関数がいいのですが、VBAでも構いません。 ご教授のほど、よろしくお願いします。

  • 【Excel VBA】重複行の削除

    はじめまして。 IDの重複を削除し、日付データを横1列にまとめるVBAについてご教示いただけますと幸いです。 ------------------------------------------------------- ▼シート1(データ入力がされているシート)    A   B   C   D   E   F    1   ID 日付 2  1234  1/1  1/6  1/10  1/20   3  1234  2/3  2/20 4  1234  3/2 5  7777  1/10  1/15  1/20 6  7777  2/2   2/12  2/22 7  9876  2/3 ⇓ マクロ起動後 ▼シート2(重複行を削除しまとめたシート)    A   B   C   D   E   F   G   H 1   ID 日付 2  1234  1/1  1/6  1/10  1/20  2/3  2/20  3/2 3  7777  1/10  1/15  1/20  2/2  2/12  2/22 4  9876  2/3 【補足】 列情報  ・A列…ID  ・B-F列…日付(左詰め) ※日付はIDごと月毎に行が変わるため、IDによって複数行存在する場合があります。 ※A列のIDは重複しない場合もあれば、4行以上ある場合があります。 ※シート1のデータはおおよそ1000-5000行です。 ※IDに対して、日付は5つあれば問題ありません。そのためG列以降の日付を削除しても支障はございません。 ------------------------------------------------------ VBAの知識があまりなく、調べて出てきたものをコピペ使用も試みたのですが、 上手く動かす事ができませんでした…。 お力添え頂けますと幸いです…。 Windows10でエクセル2016を使用しております。 何卒宜しくお願いいたします。

  • 列A,列Bを参照して列Cにそれに対応する文字列を表示

    列A,列B,列C 4,8,A 4,9,B 4,10,B 4,11,C 4,12,C 4,13,D 3,8,E 3,9,F 3,10,F 3,11,G 3,12,G 3,13,H 2,8,I 2,9,J 2,10,J 2,11,K 2,12,K 2,13,L 1,8,M 1,9,N 1,10,N 1,11,O 1,12,O 1,13,P 列Aに1~4,列Bに4~20の値を入れ、 列Cに、計算式で上記のような文字列を表示させたいのですが、 if関数のネストが7つまでらしく8つ以上が出来ません。 何か方法がありましたらお願いします。 =IF(AND(A2=4,B2<=08),"A" ,IF(AND(A2=4,B2<=10),"B" ,IF(AND(A2=4,B2<=12),"C" ,IF(AND(A2=4,B2>=13),"D" ,IF(AND(A2=3,B2<=08),"E" ,IF(AND(A2=3,B2<=10),"F" ,IF(AND(A2=3,B2<=12),"G" ,IF(AND(A2=3,B2>=13),"H"))))))))

専門家に質問してみよう