• ベストアンサー

[EXCEL2000]重複データを除去する方法

(1)A列には文字データがあり、B列にはフリガナがあります。 (2)重複しているデータを1つとみなして抽出したいのですが、どうすればよいでしょうか?(データがいくつ重複しているかは決まっていません。) どなたか教えてください! (A列)  (B列) 東京都  トウキョウト 東京都  トウキョウト 大阪府  オオサカフ 大阪府  オオサカフ 大阪府  オオサカフ 福岡県  フクオカケン  ↓  東京都  トウキョウト 大阪府  オオサカフ 福岡県  フクオカケン

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

  • ベストアンサー
回答No.4

こんばんわ。 大変失礼いたしました。 表示されなかった原因は、Privateキーワードがついていたからです。 VBAでは、Privteキーワードがついているプロシージャをツールバーボタンに登録したり、アクセスキーを設定して実行できないという制約があります。基本的なことを忘れてサンプルマクロを提供してしまいました。誠に申し訳ございませんでした。深くお詫び申し上げます。 修正マクロを作らせていただきました。前回の方法で、実行してみて下さい。今回は、アクセスキーを設定して実行することができるかと思います。 Sub Rows_Delete() Dim myRow As Integer Dim i As Integer Dim j As Integer Dim k As Integer Dim myCnt As Integer myRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To myRow - 1 If Cells(i, 1).Value <> "" Then For j = i + 1 To myRow For k = 1 To 2 If Cells(i, k).Value = Cells(j, k).Value Then myCnt = myCnt + 1 If myCnt = 2 Then Rows(j & ":" & j).ClearContents End If End If Next k myCnt = 0 Next j End If Next i Do myRow = Cells(Rows.Count, 1).End(xlUp).Row If Cells(myRow, 1).End(xlUp).Row = 1 Then Exit Do For i = 2 To myRow If Cells(i, 1).Value = "" Then Rows(i & ":" & i).Delete Next i Loop End Sub

fuku_z
質問者

お礼

kazuhiko5681さん、二度目の回答ありがとうございます。 私のために遅い時間まで修正マクロを作って下さり、本当に感謝しています。 私もkazuhiko5681さんのようにマクロを自在に操れるように勉強していきたいです。 過去の質問をよく調べなかったばかりに負担をかけてしまいました。 本当にありがとうございました。

その他の回答 (3)

回答No.3

初めまして。サンプルマクロを作ってみました。下記のコードをコピー・ペーストするだけで、自動であなた様の考えていることが実行されます。 下記の様に操作してみて下さい。 1.新規ブックを開き、ALT+F11キーを押してVBE画面を開く 2.画面左上のVBAProject徒書いてある下のSheet1をダブルクリックし、右側の白い部分へ下のコードをコピー・ペーストする。 3.再度ALT+F11キーを押してエクセルの画面にもどり、ALT+F8キーを押してマクロダイアログボックスを立ち上げ、マクロ名の下に、Sheet1.Rows_Deleteと入力されている(されていない時は、下のマクロ名をクリックすると入力される。)ことを確認後、オプションボタンをクリックする。 4.カーソルが点滅しているテキストボックスに半角小文字でbと入力し、OKボタンを押してダイアログボックスを閉じる。×ボタンを押してマクロダイアログボックスも閉じる。 適当にデータを入力後、CTRL+bを押すとマクロが実行され、ダブった行が削除されています。 もし不都合な点・ご不明な点がございましたら、ご遠慮なくお知らせ下さい。私でよろしければ、あなた様のおやりになりたいことが実現できるまでご一緒に考えていきたいと思います。 Private Sub Rows_Delete() Dim i As Integer Dim j As Integer Dim k As Integer For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row - 1 For j = i + 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To 2 If Cells(i, k).Value = Cells(j, k).Value Then Rows(j & ":" & j).Delete shift:=xlShiftUp End If Next k Next j Next i End Sub

fuku_z
質問者

補足

kazuhiko5681さん、回答ありがとうございます。 おっしゃるとおりやってみました。ところが、 >マクロ名の下に、Sheet1.Rows_Deleteと入力されている のところでマクロ名がでてきません。その下の欄(キャンセルボタンの左)にも 何も表示がありません。 質問についてはすでに解決しましたが、もし、よろしければ、 原因を教えていただけませんか。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

同様の質問が度々出ます。 2002/10/14 No.380628 2002/9/20 No.362854など。 「エクセル 重複データ」を検索語として、OK-WEBの過去の質問を調べてください。重複を削除とか合計するとかの質問が出ます。

fuku_z
質問者

お礼

imogasiさん、いつもありがとうございます。 過去の質問をよく調べた結果、 (1)フィルタオプションの設定 (2)重複するコードは無視するにチェックする ことで解決いたしました。同じ質問が何度も出ていたようですね。 以後、よく調べてから質問するよう気をつけます。回答ありがとうございました。

回答No.1

集計をするといいのでは。 データ→集計→A列の合計を集計 集計した合計だけを、コピーして別のワークシートに貼り付けすると、 抽出できます。

fuku_z
質問者

お礼

データ→集計で実行した結果を他のシートに貼り付けると、 結果だけでなく、内訳のデータまでコピーされてしまうようです。 過去の質問をよく調べた結果、抽出結果だけを活用できるようにするには、 (1)フィルタオプションの設定 (2)重複するコードは無視するにチェックする (3)結果をコピーして他のシートに貼り付ける により可能でした。回答ありがとうございました。

関連するQ&A

  • 重複データについて

    accessで重複しているデータを抽出したいのですが、初心者のためよくわかりません。 1列目 2列目 A   2  A   3 B   4 C   5 C   5 C   5 というデータがあった場合、1列目は重複していて2列目は重複していないデータだけを抽出したい場合、どういうクエリにすればいいでしょうか? 重複クエリではこの場合、Cも出力されてしまうためどうしたらいいのか悩んでおります。 よろしくお願いいたします。

  • 重複データの抽出

    重複した数字のデータを抽出してまとめたいのですが教えていただけないでしょうか? 例えば A列    B列   1245     1365     1245 1398 1365 1155 1245 この表を      A列    B列   1245    1245 1365    1365 1245    1398 1398    1155 1365 1155 1245 のようにまとめたい A列の重複したデータを抽出しB列にまとめたいのですが、なるべく関数でやりたいのですが、良い方法をお願いいたします。

  • ACCESSの同一テーブル内の重複データ行の削除

    ACCESS2007で、同一テーブル内の重複データ行を、削除or除外抽出して、重複のないデータを残したいと考えています。(EXCEL2007の重複削除のイメージ) ●データサンプル <会社名><〒><住所><電話番号><FAX><業種><@@@@@> 山田商事|100-123|東京都千代田区@@@|03-2456-1111|…………………… 河野商会|200-123|大阪府枚方市@@@|072-556-1111|…………………… 佐野商店|500-123|愛知県名古屋市@@@|052-456-1111|…………………… 山田商事|100-123|東京都千代田区@@@|03-2456-1111|++++++++++++++++ 佐野商店|500-123|愛知県名古屋市@@@|052-456-1111|================= 大戸屋|800-123|福岡県福岡市@@@|03-2456-1111|……………………    ↓ ↓ ↓ ↓  ↓  ↓  ↓  ↓  ↓ 山田商事|100-123|東京都千代田区@@@|03-2456-1111|…………………… 河野商会|200-123|大阪府枚方市@@@|072-556-1111|…………………… 佐野商店|500-123|愛知県名古屋市@@@|052-456-1111|…………………… 大戸屋|800-123|福岡県福岡市@@@|03-2456-1111|…………………… ●今回、重複判定に使う列は、<電話番号>で、上の方に存在するデータが行が優先して残るようなイメージです。 クエリを使用するのか、SQL文を書かなきゃいけないのか、その辺りの判断もつかない初心者ですが、よろしくお願い致します。

  • エクセル重複データのある列同士の2列を比較したい

    エクセルに詳しい方、教えて頂きたいです。 文で説明すると、難しいので例と一緒に説明させてください。 例えば、下のようなデータがあるとします。 A列 B列 山田さん 栃木県 山田さん 栃木県 山田さん 大阪府 山田さん 栃木県 鈴木さん 三重県 鈴木さん 三重県 大野さん 千葉県 大野さん 東京都 大野さん 東京都 A列はA列で重複したデータがあり、B列はB列で重複したデーターがある場合。 A列 B列 C列 山田さん 栃木県 大阪府 鈴木さん 三重県 大野さん 千葉県 東京都 上ような結果にできる方法はないでしょうか。 例えば住所録をデータで何年分かためており、整理したいが、現在の住所は一つのはずなのに間違えて住所入力したか引越ししたかで複数住所がある。現在はどちらが正しいのか確認するために、その確認資料を作成したい。(同じ名前の人で別人の人はいないとする。) 相違があるかどうかを調べるだけならと、 C列にif関数をいれて見ましたが、ベストな結果ではないと思います。 ちなみに入れた関数は、元のデータのC列目に IF(A1=A2,IF(B1=B2," ","相違あり")," ") 上のIF関数をいれて、下にデータの分だけコピペしました。 エクセルを触るのは久々で、思いつく方法をしてみました。 ですので関数でできるのか、マクロでできるのか、またはエクセルの機能を使用してできるのか、またその方法を教えて頂きたいです。 そんな表にしなくても、こういうのでいいんじゃないの?等の提案でも構いません。 よろしくお願いいたします。

  • 「エクセル」で重複したデータだけを呼び出したい。

    「Excel2000」を使用しています。 「重複しているデータだけ抽出する」 ということは出来るでしょうか? たとえば「A列」に名前が入っていて、 「B列」に住所、「C列」に電話番号が 入っているとします。 重複した名前だけを呼び出して、 なおかつ「B列」「C列」の データも表示させたいのですが…。

  • 重複しないデータの抽出について

    こんにちわ。 エクセルでつぎのようなリストがあるとします。A,B列セットで重複しないデータを一度に抽出したいのですが、どうしたらいいですか?    A列     B列     1     1     1 2     1     2     3     2     1 4     1     2 5     2     2 6     1     1 結果 A列    B列       1    1       1    2       2    1      2    2

  • エクセル 重複する文字列がある場合の削除について

    よろしければお知恵を拝借できれば幸いです。 A列       B列         C列 東京都    中央区    中央区○×小学校 東京都    中央区    中央区○△小学校 東京都    中央区    中央区○○小学校 上記のようなデータがあるのですが、重複しているデータが存在しているので D、E列を作業列として、        D列                 E列 =CONCATENATE(A1,B1,C1)      =IF(COUNTIF($D$1:D1,D)>1,NA(),"") 以下コピペ で重複を消していっているのですが、 C列のデータの中に 中央区○○小学校 中央区立○○小学校 ○○小学校 (※以上はすべて同じもの) のような形でデータが存在しており、上記の重複データの抽出だと 拾えないので困っております。 これら三つのパターンを全て同じデータだと規定して、重複を抽出する 方法などは可能でしょうか? よろしければご教示頂けると幸いです。 どうぞよろしくお願い致します。

  • Excel2003での行重複削除

     Excel2003で、列のセル内容が同一の場合を削除・抽出することは可能でしょうか。例えば、次のようなイメージです。 行番号 A列 B列 行1 A1県 B1市 行2 A1県 B2市 行3 A1県 B3市 行4 A1県 B4市 行5 A2県 B5市 行6 A2県 B6市  ここから、A列が同一の行の重複を削除したいのです。上記では、行1から行4までは「A1県」で同一なので、1つの行だけ残し後の行は削除したい。B列の内容は重複削除で一部消えますが構いません。上記の場合、抽出結果は次のようになります(先頭行だけ残した場合ですが)。 行番号 A列 B列 行1 A1県 B1市 行5 A2県 B5市  データベースが大きいため、手作業で削除して行くのは大変です。適当な方法がありましたら、是非、ご教示ください。  どうぞ宜しくお願いします。  

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

    エクセル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列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • Excel2003で重複したデータを削除したい

    Excel2003で重複したデータを削除する方法を教えて下さい。 A・B・C・Dの列の全てが重複するデータを削除したいのですが、可能ですか?AとB列は重複するけど、CやDのデータは重複していなければ、残しておきたいです。 以下イメージです。 行/列  A   B    C    D 1    なす  商店  100円  3/4  2    なす  商店  200円  3/2 3    なす  商店  200円  3/2 ------------------------------------- 以下、重複データ削除後のイメージ。 1    なす  商店  100円  3/4  2    なす  商店  200円  3/2

専門家に質問してみよう