• 締切済み

ExcelVBAで重複するデータを表示するには?

mt2008の回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

簡単なものを作ってみました。 該当社名が一番最初に登場する行の右に品名を追加していき、最後に社名登場が2番目以降の不要な行を削除して形を整えています。 Sub Sample()   Dim nMax, nMatch, nCol, sString, i   'Sheet1からSheet2にコピー   Sheets("Sheet1").Cells.Copy   Sheets("Sheet2").Range("A1").Select   ActiveSheet.Paste   nMax = Cells(Rows.Count, 1).End(xlUp).Row   For i = 2 To nMax 'データがあるのは2行目から     nMatch = WorksheetFunction.Match(Cells(i, 1), Range("A:A"), 0)     If nMatch <> i Then       '品名を右に表示       sString = sString & i & ":" & i & "," '不要行削除用       nCol = Cells(nMatch, 1).End(xlToRight).Column       Cells(nMatch, nCol + 1) = Cells(i, 2)     End If   Next i   '不要な行の削除   sString = Left(sString, Len(sString) - 1)   Range(sString).Delete Shift:=xlUp End Sub

関連するQ&A

  • エクセル 重複のデーター

    Sheet1  A   B       2 A社 商品1      3 B社 商品2    4 A社 商品5   5 C社 商品4     6 F社 商品1  7 D社 商品3    8 E社 商品6    9 C社 商品2 Sheet2 A   B       1 A社       2 B社     3 C社    4 F社      5 G社   6 D社     7 E社     上記のようにSheet1の社名をSheet2に重複の無いように関数で抽出できないでしょうか? 尚、社名は5・6社のとこもあれば30社以上になることもあります 社名の順番は問いません  よろしくお願いします。    

  • 2つの条件で重複しないデータを抽出

    シート1 1|品名 種類 名前 データ 2|A 1 あ 21 3|B 2 い 11 4|F 2 あ 51 5|A 1 い 21  6|B 2 あ 64 7|A 1 あ 84 シート2 1|品名 A 2|種類 1 3| 4|名前 5|あ 6|い シート1のデータから、シート2の2つの条件(A1:B2)で、重複しない名前を表示する方法を教えて下さい。 上記のデータでいうと、品名Aであり種類が1の名前を重複なしで特定の位置(A5)から詰めて縦に表示するようにして、 シート1のデータ、シート2の条件を変更したらA5からの名前が自動更新されるようにしたいです。 以下できたら追加したいこと 1.表示する名前の順番が、シート2の条件で集計したデータ値が多い名前順 2.シート2のB2の種類に0を入れると種類の条件無しで表示 実際はA5からの名前の行は数行を結合したもので右側には複数の行でデータ項目別になって、名前が入力された時に日毎のデータを自動表示しています。 全部で名前の種類は30以上ありますが、品名の条件をつければ名前は10種類以下になります。 グラフは名前別で表示しており、不要な名前が増えると表示しずらいので、必要な名前だけのデータを表示するようにしたいです。 どうかよろしくお願いします。

  • 2シート間の重複データのチェックについて質問です!

    2シート間の重複データのチェックについて質問です! まず、以下のように二つのシートがあるとします。 【シートA】 A列     B列 登録あり  あああ社 登録なし  いいい社 登録あり  ううう社 登録なし  えええ社 登録あり  おおお社 登録なし  かかか社 【シートB】 A列     B列       あああ社       いいい社       えええ社       おおお社       かかか社       さささ社 やりたいのは、シートAのB列の社名がシートBのB列と重複しており、且つシートAにて登録ありの社名のみシートBのA列に「登録あり」とチェックする・・・ということです。 要するに、 以下のようにしたいのです。 【シートB】 A列     B列 登録あり  あああ社       いいい社       えええ社 登録あり  おおお社       かかか社       さささ社 ちなみに、シートAは5000社、シートBは10000社以上あります。 ここでシートAとシートBを比較し、登録ありの重複データをシートBにてチェックしたいということです。 説明がややこしくて大変申し訳ありません。 どなたか教えていただけませんでしょうか? 何卒よろしくお願いします。

  • エクセル重複データを非表示にしたい

    エクセル2003です。重複してるデータを1件のみ表示し他は非表示にする方法お願いします。 データ→フィルタ→フィルタオプションを使用するのは解ってますが詳細がわかりません。 例;A1に品名、B1に購入年月、C1~E1はその他項目としたデータが複数件あります。 品名と購入年月が同じデータ複数あった場合1件のみ表示させたい。 宜しくお願いします。

  • VBAでの重複データ統一についてです。

     いつもお世話になっております。VBA初心者です。 過去の質問で、2つのセルの重複データを一つのデータにする処理があったのですが、3つのセルの重複データを1つのデータにするやり方に苦戦しております。 (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  A社  鈴木   男性  B社  佐藤   女性  B社  田中   女性  A社  鈴木   男性      ↓↓ (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  B社  佐藤   女性  となるようにしたいのです。 サンプルソース等がありましたら、 よろしくお願いいたします。

  • ◆◆急募◆◆ エクセル 重複するデータの抽出について

    データの入力された2枚のA、Bシートが同じブックにあります。 <Aシート> D2~D500まで顧客番号が入力されています。 <Bシート> C2~C600まで顧客番号が入力されています。 AシートとBシートの顧客番号はいくつか重複しています。 その重複している番号をBシートのどこかのセルに”重複”と表示したいのですが、その方法が分かりません。最終的にオートフィルタで重複と重複していないものを分けたいのです。 大至急教えてください!宜しくお願いします。

  • エクセル2003 重複データの抽出

    エクセル2003を使っています。 重複したデータの抽出を行いたいのですが、 例えば、  A      B     C      D コード  書籍名  出版社名  著者 といった感じのデータが1万件ほどあります。 このうち、B列の「書籍名」が重複しているデータを抽出したい です。(抽出したものは、書籍名だけではなくて、ほかの出版社や著者の指定したデータも表示させたい。) VLOOKUPなどを使えばできないこともないのですが、一万件の 処理を行う上に、パソコンも非力なので時間がかかってしまい 困っています。 どうぞよろしくお願いします。

  • Excel 2つの重複データに重複先セル番地を表示させたい!

    お世話になります。 エクセルで2つの重複しているデータがランダムにがあります。 下記のように表示いたいのですが、良いほうを教えて下さい。 たとえばA1のみかんがA7と重複している時【7】と表示したい ※VBAはわかりません。関数は得意です。  よろしくお願いします。 A  B C 1  7 みかん 2  5 りんご 3    もも 4  6 なし 5  2  りんご 6  4  なし 7  1  みかん 8  9  ぶどう 9  8  ぶどう

  • A列のデータの重複を取り除いてC列に表示。ただし、B列に存在するデータはC列に表示させない

    お世話になります。 Excel2000を使っています。 A列のデータがA1,A2,...の順に 1 2 3 2 3 4 B列のデータがB1,B2,...の順に 2 4 6 8 だとします。 まず、A列のうち重複するデータは1つとみなして 1 2 3 4 とし(順番はどうでもいいです)、 さらにB列に含まれる2,4,6,8を取り除いた 1 3 をC列に表示させたいです。C列の順番はどうでもいいです。 どうすればできるでしょうか?ご教示ください。よろしくお願いします。

  • Excelで隣り合う列にあるデータの重複チェック

    Excelで同一のシート上の隣り合う列に入力されたデータの重複チェックをする方法が知りたいです。 例:A1とB1にそれぞれデータ(長文もあり)が入っていて、それぞれのデータが重複していればC1に「重複あり」などと表示させるための数式が知りたいです。 いろいろとやってみたのですが、どうもうまく行きません。 よろしくお願い致します。