Excel 2003重複削除マクロとは?

このQ&Aのポイント
  • Excel 2003での重複削除マクロの使い方について教えてください。
  • WinXP HE SP2およびOffice 2003環境で、銘柄の重複を削除するマクロを使いたいです。
  • 日経300投信のチャイナボーチーが重複しているデータがあり、それを削除する必要があります。銘柄コードと銘柄名が重複しています。
回答を見る
  • ベストアンサー

excel2003 重複削除マクロ

winxp he sp2, office2003 AB重複銘柄を削除し、CDに書くマクロを教えてください。 この例では、日経300投信 チャイナボーチーが重複しています。 AB(銘柄コードと銘柄名)は一体です。データは沢山あります。 列がずれて見にくいです。 A    B       C   D 1313 KODEX200 1313 KODEX200 1319 日経300投信  1319 日経300投信 1319 日経300投信  1380 秋川牧園 1380 秋川牧園     1381 アクシーズ 1381 アクシーズ    1412 チャイナボーチー 1412 チャイナボーチー 1724 シンクレイヤ 1412 チャイナボーチー 1735 伊田テクノス 1412 チャイナボーチー 1753 土屋ツーバイホーム 1724 シンクレイヤ   1783 A.Cホール 1735 伊田テクノス 1753 土屋ツーバイ 1783 A.Cホール よろしくお願いします。

  • esd827
  • お礼率48% (219/455)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 実は、1行目からデータになっています。 1行目は項目名と判断されてしまいますので提示の例ではうまく行きましたが、正しくありません。 では、マクロ作業上でダミーで先頭に1行追加し、項目を振り、終了後にダミー行を削除するように変えてみました。 逐条で解説もつけておきます。 Sub test03() Dim x As Long 'xは長整数と宣言 With ActiveSheet 'アクティブなシートで .Rows("1").Insert Shift:=xlDown 'ダミー行挿入 .Range("A1") = "Code" 'ダミー項目1 .Range("B1") = "Name" 'ダミー項目2 x = .Cells(.Rows.Count, 1).End(xlUp).Row '最終行取得 .Range("A1:B" & x).Select '範囲選択 Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True '重複を表示しない Selection.Copy .Range("C1") 'コピーしてC1以降に貼り付け .ShowAllData 'すべてを表示 .Rows("1").Delete Shift:=xlUp 'ダミー行削除 End With End Sub

esd827
質問者

お礼

希望通りできました。 ありがとう御座いました。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1のmerlionXXです。 表の形式によってはRange("A1").CurrentRegionではうまく取得できない場合がありますので.Range("A1:B" & x)と明示するようにしました。 こちらでためしてください。 Sub test02() Dim x As Long With ActiveSheet x = .Cells(.Rows.Count, 1).End(xlUp).Row .Range("A1:B" & x).Select Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True Selection.Copy .Range("C1") .ShowAllData End With End Sub

esd827
質問者

補足

ありがとう御座います。OKでした。 実は、1行目からデータになっています。 よろしくお願いします。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

前提条件 A列が銘柄コード、B列が名称とします。 表はセルA1から始まっており、1行目が項目名で2行目以降にデータがあり、データに空白行がないものとします。 以下をお試しください。 Sub test01() With ActiveSheet .Range("A1").CurrentRegion.Select Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True Selection.Copy .Range("C1").PasteSpecial .ShowAllData End With Application.CutCopyMode = False End Sub

関連するQ&A

  • excel2003 重複削除マクロ 再質問

    QNo.3630625 excel2003 重複削除マクロ 回答マクロを実行した結果、うまくいかないケースがあり、再質問させて頂きました。 winxp he sp2, office2003 AB重複銘柄を削除した結果を、CDに書くマクロを教えてください。 この例では、日経300投信 チャイナボーチーが重複しています。 AB(銘柄コードと銘柄名)は一体です。データは沢山あります。1700個。 列がずれて見にくいです。 A    B       C   D 1313 KODEX200 1313 KODEX200 1319 日経300投信  1319 日経300投信 1319 日経300投信  1380 秋川牧園 1380 秋川牧園     1381 アクシーズ 1381 アクシーズ    1412 チャイナボーチー 1412 チャイナボーチー 1724 シンクレイヤ 1412 チャイナボーチー 1735 伊田テクノス 1412 チャイナボーチー 1753 土屋ツーバイホーム 1724 シンクレイヤ   1783 A.Cホール 1735 伊田テクノス 1753 土屋ツーバイ 1783 A.Cホール 回答: 1行目は項目名と判断されてしまいますので提示の例ではうまく行きましたが、正しくありません。 では、マクロ作業上でダミーで先頭に1行追加し、項目を振り、終了後にダミー行を削除するように変えてみました。 逐条で解説もつけておきます。 Sub test03() Dim x As Long 'xは長整数と宣言 With ActiveSheet 'アクティブなシートで .Rows("1").Insert Shift:=xlDown 'ダミー行挿入 .Range("A1") = "Code" 'ダミー項目1 .Range("B1") = "Name" 'ダミー項目2 x = .Cells(.Rows.Count, 1).End(xlUp).Row '最終行取得 .Range("A1:B" & x).Select '範囲選択 Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True '重複を表示しない Selection.Copy .Range("C1") 'コピーしてC1以降に貼り付け .ShowAllData 'すべてを表示 --------------------------------------ここでデバッグエラーが発生します。 .Rows("1").Delete Shift:=xlUp 'ダミー行削除 End With End Sub エラーが発生するケースまでは、特定していません。 よろしくお願いします。

  • excel2003 文字削除マクロの実行時間を短くしたい

    winxp he sp2, excel2003 1.やりたい事 マクロ実行前のデータを C列の該当する文字を削除し 実行後の様にしたいのです。 データが約3300個あり、下記マクロでは、約30秒掛かります。 これを、もっと短くするマクロを教えてください。 Sub aaa() Dim idx As Long For idx = Range("C65536").End(xlUp).Row To 1 Step -1 If Cells(idx, "C").Value = "日々公表銘柄" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "貸株注意喚起" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "整理ポスト" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "監理ポスト" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "建玉上限:3000万円" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "建玉上限:5000万円" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "建玉上限:5億円" Then Cells(idx, "C").EntireRow.Delete If Cells(idx, "C").Value = "建玉上限:10億円" Then Cells(idx, "C").EntireRow.Delete Next idx End Sub データ3300個。列がずれて見にくいのですが。 A列:株コード 4桁固定 B列:株銘柄名 C列:摘要 マクロ実行前  A列 B列 C列 ------------------------------------------------ 1301 極洋          建玉上限:5000万円 1305 ダイワ投信-トピックス 建玉上限:5億円 1306 TOPIX連動型投信  建玉上限:10億円 1309 上海株式指数投信    建玉上限:5000万円 1313 KODEX200    新規買停止 1313 KODEX200    新規売停止 1313 KODEX200    一般信用新規買停止 1313 KODEX200    用掛目規制:0% 1314 S&P日本新興株100 建玉上限:3000万円 1319 日経300投信     新規買停止 1319 日経300投信     新規売停止 マクロ実行後 A列 B列 C列 ------------------------------------------------ 1301 極洋           1305 ダイワ投信-トピックス  1306 TOPIX連動型投信   1309 上海株式指数投信     1313 KODEX200    新規買停止 1313 KODEX200    新規売停止 1313 KODEX200    一般信用新規買停止 1313 KODEX200    用掛目規制:0% 1314 S&P日本新興株100  1319 日経300投信     新規買停止 1319 日経300投信     新規売停止 よろしくお願いします。

  • 重複抽出マクロ

    winxp he sp3, excel2003 AB DE: 銘柄コード(4桁固定)銘柄名 一体です。 1.やりたい事 ABとDEが、重複している場合、下記の様に、FGHに記述するマクロです。列が揃ってなくて、見にくいですが。 下記重複抽出マクロではNGです。コメントお願いします。 A B C D E F G H 3864 三菱製紙 0.15 3865 北越紙 3865 北越製紙 0.15 3865 北越製紙 0.15 4224 ロンシール 4531 有機薬 0 4530 久光製薬 0.45 4531 有機薬 7968 田崎真珠 0.15 4531 有機薬 0 4614 トウペ 4534 持田製薬 0.15 7968 田崎真珠 7958 天馬 0.15 8091 ニチモウ 7968 田崎真珠 0.15 8113 ユニチャ 0.9 8114 デサント 0.15 Sub 重複抽出() Rows(1).Insert Range("A1:e1").Value = [{1,2,3,4,5}] Range("IV2").Formula = "=COUNTIF(A:A,d2)>0" Columns("d:e").AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=Range("IV1:IV2"), _ CopyToRange:=Range("f1:h1") Range("IV2").Clear Rows(1).Delete End Sub よろしくお願いします。

  • 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 このようにデータが消えるかのどちらかのデータがでる形だと助かります。 関数で実現できるのかどうか色々調べましたがまったくわからず、こちらの 方々に助けていただければ幸いです。

  • 重複のグループ化に関する質問

    重複削除に関してどうしても解決策を見出せない事がるので どなたか宜しくお願いします。 (MySQL5.0使用) テーブルAAA --A-- -B ---C-- ----D--- --E- -F- ---G--- ---H--- 15451 dg 110200 GD-56546 1548 GGG 1232241 2354413 45662 ab 154000 AB-44556 1554 GGG 4565564 4586214 45662 ab 154000 AB-54132 1554 GGG 4565564 4586214 45662 ab 154000 AB-87654 1554 GGG 4565564 4586214 21345 cc 186000 DB-24521 8456 GGG 3000321 3564200 21345 cc 186000 DB-64856 8456 GGG 3456845 3695451 21345 cc 186000 DB-43503 8456 GGG 3000321 3564200 86441 ga 264000 AG-64411 6521 GGG 5400560 5487751 このようなデータを格納してあるとして、 これをクエリを実行した結果 15451 dg 110200 GD-56546 1548 GGG 1232241 2354413 45662 ab 154000 AB-44556 1554 GGG 4565564 4586214 21345 cc 186000 DB-24521 8456 GGG 3000321 3564200 21345 cc 186000 DB-64856 8456 GGG 3456845 3695451 86441 ga 264000 AG-64411 6521 GGG 5400560 5487751 となるようにするにはどうしたら良いのでしょうか? 問題となっているのはテーブルAAAの2~7行の部分です。 A、B、C、E、F、G、Hが同じ値のレコードは重複とみなして グループ化したいと考えております。

    • ベストアンサー
    • MySQL
  • EXCEL2010 関数について

    EXCEL2010を使っています。 たとえばシート1のA列からC列に AB0001 1 キャビン AB0001 2 キャビンマイルド AB0002 1 セブンスター AB0002 2 セブンスターライト AB0003 1 マルボロ と並んでいるとします。AB0001は『キャビン系』が2種類『キャビン』と『キャビンマイルド』 AB0002には『セブンスター系』が二種類『セブンスター』『セブンスターライト』・・・ という感じで分類しています。 シート2のA列からB列には キャビンマイルド  A社  キャビンマイルド  D社 キャビンマイルド  C社 キャビンマイルド  F社 キャビンマイルド  E社 キャビンマイルド  P社 セブンスター  Y社 キャビンマイルドを扱う会社がA社、D社、C社、F社、E社 セブンスターがY社・・・ という感じに並んでいるとします。 シート2のキャビンマイルドすべてにシート1のAB0001を、セブンスターにAB0002という風にあてがいたいのですがどのようにしたら良いでしょうか?同じ数であればできるのですがシート1は重複データがなく、シート2には重複データがあるのでどうやったらいいのかわかりません。 データの量が何万件もあって手作業では厳しいのです。 何かありましたら教えて下さい。

  • 重複行を1としてカウント

    大変お世話になっております。 以前、『ピポットテーブ 重複行を1としてカウントしたい』で質問をさせて頂き、ご教示を頂いております。 今回は、更に条件を加えて重複を1とカウントしようとして、下記から、 =IF(COUNTIFS($Q$2:Q2,MONTH(E2),$L$2:L2,L2,$M$2:M2,M2,$P$2:P2,P2)=1,1,0)              ↓ =IF(COUNTIFS($Q$2:Q2,MONTH(E2),$C$2:C2,C2,$L$2:L2,L2,$M$2:M2,M2,$P$2:P2,P2)=1,1,0) としたのですが、C列(グループ)の重複が上手くいきませんでした。 重複の優先順位はグループが1番目になります。 大変恐縮ですが、ご教示頂けたら大変助かります。 データは下記の通りになります。(良い例題でなく申し訳ありません) A列,B列,,D列,E列,F列,G列,H列,,,,L列,M列,,,P列,Q列 機器ID,装置名,,グループ,利用日,開始時間,終了時間,利用時間,,,,所属区分,利用区分,,,課題ID, AB024,アイロン,,A,2022/6/13,9:00,17:00,8,,,,大企業,外国利用,,,55AB1234,6 AB020,アイロン,,A,2022/4/25,0:00,6:00,6,,,,構内,国内利用,,,55AB1234,4 AB005,スマホ,,A,2022/4/25,5:00,7:00,2,,,,構内,自社用,,,55RE7800,4 AB002,テレビ,,C,2022/6/24,0:00,24:00:00,24,,,,民間,構内利用,,,55AB1234,6 AB002,テレビ,,C,2022/6/24,5:00,7:00:00,2,,,,大学,国内利用,,,55RE7800,6 AB222,ドライヤー,,C,2022/4/30,9:00,17:00,8,,,,中小企業,国内利用,,,55RE7800,4 AB235,パソコン,,C,2022/5/1,5:00,7:00,2,,,,管理部署,使用不可,,,空白,5 AB890,ポット,,F,2022/4/1,9:00,17:00,8,,,,構内,自社用,,,55RE7800,4 AB890,ポット,,F,2022/5/6,0:00,24:00:00,24,,,,管理部署,使用不可,,,空白,5 AB890,ポット,,F,2022/5/9,9:00,17:00,8,,,,中小企業,国内利用,,,55RE7800,5 AB777,乾燥器,,G,2022/5/12,0:00,24:00:00,24,,,,大学,国内利用,,,55AB1234,5 AB777,乾燥器,,G,2022/6/5,13:00,20:00,7,,,,民間,構内利用,,,55RE7800,6 AB345,炊飯器,,G,2022/6/23,9:00,17:00,8,,,,大企業,外国利用,,,55RE7800,6 AB123,洗濯機,,G,2022/4/1,9:00,17:00,8,,,,大学,国内利用,,,55AB1234,4 AB123,洗濯機,,G,2022/5/15,0:00,24:00:00,24,,,,大学,国内利用,,,55AB1234,5 AB016,掃除機,,J,2022/6/1,13:00,20:00,7,,,,民間,構内利用,,,JPMXP1222NM0058,6

  • excelマクロ

    office2003 Q: ABデータ+CDデータをEFに記述し、EFデータを昇順に並べるマクロを教えてください。 1行目からデータです。列がずれて見にくいです。 AB CDは一体です。(銘柄コード 銘柄名)データは沢山あります。 A   B        C   D       E   F 3011 バナーズ     1928 積水ハウス   1928 積水ハウス 3090 ナチュラム    1930 北陸電気工事  1930 北陸電気工事 4314 ダヴィンチ・アド 1932 コミューチュア 1932 コミューチュア 4747 e-まちタウン  1934 ユアテック   1934 ユアテック 4755 楽天                   3011 バナーズ                         3090 ナチュラム                         4314 ダヴィンチ・アド                         4747 e-まちタウン                         4755 楽天 よろしくお願いします。

  • 投資成績をグラフ化するツール 銘柄グラフ作成方法

    登録しておいた複数の銘柄が、日経平均と比較してどのような動きになっているか知りたい、一括して動きをグラフで見たいと考えています。そのようなことができるツールはありますでしょうか。 イメージとしては、yahooファイナンスのポートフォリオのように、コードをいれると、株価・前日比など、一覧できるツールに、今日をスタート地点として、どれだけあがったか下がったか、ひとつのチャートでみれる機能を追加する感じです。 ビジュアルは、以下のリンク先で日経平均とひふみ投信を比較しているような、棒線グラフをイメージしています。この棒線が複数になって、銘柄Aは日経平均より下がってるなーとか、銘柄Bはあがってるなーとか一覧できるものが欲しいです。Excelのマクロとかでつくらないとダメですかね? http://www.tsurao.com/tag/%E3%81%B2%E3%81%B5%E3%81%BF%E6%8A%95%E4%BF%A1

  • エクセルのグラフについて

    日経平均株価と個別銘柄の株価の推移を線グラフで表したく、具体的には、過去一年分の個別銘柄株価と日経平均株価を両方とも主軸で線グラフを作成したいのですが、双方の数字の桁が違うのでうまくいきません。縦軸目盛は個別銘柄の金額で表示させ、日経平均がどのように推移しているかということなんですが、、、。元データは、A列に日付、B列に個別銘柄株価、C列に日経平均株価としてます。説明がうまく出来ないのですが、よろしくご教授願います。

専門家に質問してみよう