• 締切済み

複数セルの値が重複しているかどうかを調べたい

zap35の回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。 例えばこんなマクロでしょうか。Findメソッドも理解されていらっしゃるようですので、読めば分かると思います。 Sub Macro6() Const col As String = "A" Dim res Dim act As Worksheet Dim idx, lastR As Long Dim fAdr As String   Application.ScreenUpdating = False   Set act = ActiveSheet   lastR = act.Cells(65536, col).End(xlUp).Row   For idx = 2 To lastR - 1     With act.Range(Cells(idx + 1, col), Cells(lastR, col))       Set res = .Find(What:=act.Cells(idx, col).Value, LookAt:=xlWhole)       If Not res Is Nothing Then         fAdr = res.Address         Do           If res.Offset(0, 1).Value = act.Cells(idx, col).Offset(0, 1) Then             res.Resize(1, 2).Font.ColorIndex = 3           End If           Set res = .FindNext(res)         Loop Until res.Address = fAdr       End If     End With   Next idx   Application.ScreenUpdating = True End Sub

関連するQ&A

  • 重複行を削除

    重複する行をVBAコードで削除したいのですが A列 B列 C列 あ  1  a あ  1  a あ  2  a い  1  a い  2  c い  2  c A列 B列 C列 あ  1  a あ  2  a い  1  a い  2  c のようにABC列同一文字は1行にしたいのですがVBAコード、関数の解る方ご教授願います。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • 【Excel】複数の条件を設定した重複セルの抽出

    【Excel】複数の条件を設定した重複セルの抽出 例えば、A列にA社からD社のデータが行に複数個ずつ並び、B列にそのクライアントに問い合わせた日付が入力されている場合。 A社に問い合わせた日付は1/1、1/3、1/5。B社に問い合わせた日付が1/1、1/1、1/3、1/5、1/5となっているデータで、 B社の3~7行目の日付で重複している1/1と1/5の行のみを抽出する方法ってありますか? 作業自体はB社だけでなく、複数あるので、関数か何かで出来る方法があれば教えていただきたいです。

  • 2行にわたる値を1行にまとめるには?

    A列に6桁の数字、B列に文字、C列から不特定な列(=x列)まで空白か文字か数字が表示されているという行が、不特定行(=y行)並んでいるエクセル表があります。 A列の数字はB列の商品に対するコード番号で、C列からx列は日ごと売上数とします。 ある1つの商品には、2つのコードがついてしまっているために、A列にはそれぞれのコード、B列には同じ商品名、C列からx列には、日によって売上数がどちらかにばらばらに入っています。 また、売上表の抽出方法によって、行の位置は変わり、その商品が抽出されない時もあります。 このように、1つの商品について2行になっているところを1行にまとめた表にするマクロを作りたいのですが、教えて下さい。 途中まで作ってみたのがこれです。根本から直してもらってもよいですので、教えて下さい。 Dim CL As Range '変数宣言 Dim CCL As Range With Range("A:A") Set CL = .Find(What:="コード番号", LookAt:=xlWhole) If CL Is Nothing Then Else Set CCL = .Find(What:="もう1つのコード番号",LookAt:=xlWhole) If CCL Is Nothing Then   Else ’一行にする関数 をここへ End If End If End With    

  • エクセル セルの結合について

    エクセルにてA列縦3行を結合してB列・C列は縦3行は結合せずにそれぞれ数値を入力してます。オートセルにてB列の数値を抽出後A列を再度抽出すると、A列は画面上では表示されているのですが、抽出が出来ません。どのようにしたらA列を抽出できるのでしょうか?ご存知の方教えてください。

  • EXCEL 条件による重複セルの検出

    列A   列B   (列C) A2001   0    (*) A2001   0    (*) A2001   1    (*) A2001   1    (*) A2001   2 A2001   2 A2002   0 A2003   1    (*) A2003   1    (*) A2003   3 A2003   3 列A、Bに上記のようなデータが入力されている。 以下の条件でデータを抽出し、列Cに印(上の例では*)を付けたい。 1.列Aが重複しているならば、 2.重複しているデータの中で列Bを比較し、 3.列Bの中で最大の値ではないものに対して*を付ける。 このような処理を行いたいのですが、さっぱり分かりません。 関数でも、VBAでもどちらでもかまいません。 どうぞよろしくお願い致します。

  • Excelセル内の改行を含む文字列の1行目抽出

    Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください!

  • VBAで条件に一致するセルの隣の値をまとめる方法

    VBAで条件に一致する複数セルの隣のセルの値を取得し、まとめる方法教えて下さい! 下記例の様に、A列に商品コード、B列にサイズ値の入力されたデータが8万行ほどあり、別シートに商品コード毎にサイズ値をまとめたいです。 例: 処理前 A列(商品コード)      B列(サイズ値) abc1000           S abc1001           S abc1001           M abc1001           L abc1002           XS abc1002           S 処理後(別シート) A列(商品コード)      B列(サイズ値) abc1000           S abc1001           S:M:L abc1002           XS:S COUNTIFで連番を振ってMATCHとINDEX関数で抽出し、まとめるという方法で実現は出来たのですが、処理にかなりの時間を要するのでVBAならもっと高速にできるのではないかと思い質問させて頂きました。 よろしくお願い致します。

  • 可視セルで重複セルをカウントしない方法

    売上シートのA列のA2から下方向に会社コードが入っています。B列には日付が入っています。同じ月でもA列には同じ会社から注文が入ると同じ会社コードが入ります。 B列の日付ら、月別の集計をフィルター機能を使って特定月を表示させ、A列の会社コードから注文があった会社の個数を求めたいのですが、どうすればよいでしょうか。VBAでも構いません。 A列のA2からA3、A4と売り上げがある度に会社コードが追加されます。会社コードは1001,1002,1003,1004,1005と続き150社ほどあります。B列のB2から下は例として2018/9/27と言う形式の日付が入ります。 よろしくお願いいたします。

  • エクセルで重複するセルを削除したい

    エクセル2000で同じ内容のセルが複数あったとき、ひとつだけを残し他を削除する方法を教えてください。 ただし少し条件があります。 データーは5列100行位からなっています。 A列にある重複したデーターのセルを削除したいのですが、A列は同一なのですがB列は異なっています。B列に数字が入っているセルとうでないセルがあるのですが、数字が入っているものを残したいのです。 具体例は次のとおりです。 A列に 「ホンダCIVIC」 B列 「-」と書かれた行と A列に 「ホンダCIVIC」 B列 「2」と書かれた行、 A列に 「ホンダCIVIC」 B列 「5」と書かれた行、 のA列だけを見ると重複した3行が有ったとします。 B列に「5」または「2」の入った行ひとつだけ残し、他を削除したいのです。 何かよい方法があればお教えください。よろしくお願いします。