- 締切済み
ExcelVBAで重複するデータを表示するには?
30246kikuの回答
- 30246kiku
- ベストアンサー率73% (370/504)
Excel の関数等不慣れなので、そういう人が考えたら・・・の例になるか?も 重複排除・・・ Dictionary を使ってしまいます。 今回の場合、社名がキーで品名が内容 社名は出現順、品名も出現順(ただし、重複する品名は覚えない) 以下の関数を標準モジュールに記述しておきます。 Public Sub CngShowPtn(rng As Range, toRng As Range) Dim dic As Object Dim v As Variant, vr As Variant Dim bNxt As Boolean Dim i As Long, iv As Long, ivmax As Long Set dic = CreateObject("Scripting.Dictionary") With rng i = 1 While (.Offset(i) <> "") bNxt = True v = dic.Item(.Offset(i).Value) If (Not IsArray(v)) Then ReDim v(0) Else For Each vr In v If (vr = .Offset(i, 1).Value) Then bNxt = False Exit For End If Next If (bNxt) Then ReDim Preserve v(UBound(v) + 1) End If If (bNxt) Then v(UBound(v)) = .Offset(i, 1).Value dic.Item(.Offset(i).Value) = v End If i = i + 1 Wend End With If (dic.Count > 0) Then With toRng i = 1 ivmax = 0 For Each v In dic.Keys vr = dic.Item(v) iv = UBound(vr) + 1 If (iv > ivmax) Then ivmax = iv .Offset(i) = v .Offset(i, 1).Resize(, iv) = vr i = i + 1 Next .Offset(0) = rng For i = 1 To ivmax .Offset(0, i) = rng.Offset(0, 1) & i Next End With End If Set dic = Nothing End Sub 使い方は、どこの表を、そして結果をどこに表示する を Range で指定します。 以下を実行してみた結果は、添付図のようになります。 Public Sub test() Call CngShowPtn(Range("A1"), Range("D2")) Call CngShowPtn(Range("A9"), Range("D10")) End Sub また、シートを修飾して指定したりします。 例) Call CngShowPtn(Worksheets("Sheet1").Range("A1") _ , Worksheets("Sheet2").Range("A1"))
関連する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社以上になることもあります 社名の順番は問いません よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 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種類以下になります。 グラフは名前別で表示しており、不要な名前が増えると表示しずらいので、必要な名前だけのデータを表示するようにしたいです。 どうかよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 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件のみ表示させたい。 宜しくお願いします。
- ベストアンサー
- その他MS Office製品
- VBAでの重複データ統一についてです。
いつもお世話になっております。VBA初心者です。 過去の質問で、2つのセルの重複データを一つのデータにする処理があったのですが、3つのセルの重複データを1つのデータにするやり方に苦戦しております。 (A列) (B列) (C列) A社 鈴木 男性 B社 田中 女性 A社 鈴木 男性 B社 佐藤 女性 B社 田中 女性 A社 鈴木 男性 ↓↓ (A列) (B列) (C列) A社 鈴木 男性 B社 田中 女性 B社 佐藤 女性 となるようにしたいのです。 サンプルソース等がありましたら、 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- ◆◆急募◆◆ エクセル 重複するデータの抽出について
データの入力された2枚のA、Bシートが同じブックにあります。 <Aシート> D2~D500まで顧客番号が入力されています。 <Bシート> C2~C600まで顧客番号が入力されています。 AシートとBシートの顧客番号はいくつか重複しています。 その重複している番号をBシートのどこかのセルに”重複”と表示したいのですが、その方法が分かりません。最終的にオートフィルタで重複と重複していないものを分けたいのです。 大至急教えてください!宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル2003 重複データの抽出
エクセル2003を使っています。 重複したデータの抽出を行いたいのですが、 例えば、 A B C D コード 書籍名 出版社名 著者 といった感じのデータが1万件ほどあります。 このうち、B列の「書籍名」が重複しているデータを抽出したい です。(抽出したものは、書籍名だけではなくて、ほかの出版社や著者の指定したデータも表示させたい。) VLOOKUPなどを使えばできないこともないのですが、一万件の 処理を行う上に、パソコンも非力なので時間がかかってしまい 困っています。 どうぞよろしくお願いします。
- ベストアンサー
- Windows XP
- 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に「重複あり」などと表示させるための数式が知りたいです。 いろいろとやってみたのですが、どうもうまく行きません。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト