【Excel2007】重複データの条件付き削除方法

このQ&Aのポイント
  • 商品の納品リストがあるのですが、条件付きで重複データを削除する方法についてご相談です。
  • 納品日が最新の行だけ抽出したいです。
  • 該当商品の最新納品日をひっぱってくるような関数があるのかわからずに困っております。
回答を見る
  • ベストアンサー

【Excel2007】重複データの条件付き削除方法

商品の納品リストがあるのですが、条件付きで重複データを削除する方法についてご相談です。 通常は「データ>並べ替えとフィルタ>詳細設定>フィルタオプションの設定」内の「重複するレコードは無視する」にチェックをつけて一覧を作成しています。 今回はその商品の最終納品日を残さなくてはならない為、同じ商品でも納品日が異なる過去の納品データも抽出されてきてしまいます。 納品日が記載された行は残したままで、商品リストというのは作成可能なのでしょうか? 可能であれば納品日が最新の行だけ抽出したいです。 【イメージ】 <元のデータ> 2012/04/01 商品A 2012/04/03 商品B 2012/04/05 商品A 2012/08/01 商品A 2012/08/02 商品C <抽出後のデータ> 2012/08/01 商品A 2012/04/03 商品B 2012/08/02 商品C ・年月日の昇順・降順にはこだわっていません ・各商品が1行ずつ抽出して欲しい ・最新の納品日が出てきてほしい データ自体を別シートにうつし、納品日を削除したデータでフィルタをかけるというのも考えたのですが、該当商品の最新納品日をひっぱってくるような関数があるのかわからずに困っております。 漠然としたご相談で申し訳ありません、情報不足であればご指摘いただければと思いますので どうぞ宜しくお願い申し上げます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

簡単な方法: 元のデータの丸ごと複製をコピーする 日付の「降順」で全体を並べ替える 全体を選んだ状態でデータタブの「重複の削除」を開始する 商品名だけチェックを入れて,重複を削除する。 関数を使った方法: 元のデータから商品列だけを丸ごとコピーし複製する 商品列だけで「重複の削除」し,一意の商品名一覧を得る 元のデータ:シート1 A列に日付 B列に商品 重複を削除したリスト:シート2 B列に一意の商品 A2: =MAX(IF(Sheet1!B:B=B2,Sheet1!a:a)) と記入し,コントロールキーとシフトキーを押しながらEnterで入力,日付の書式を取り付けて下向けにコピー。

piropiro24
質問者

お礼

早速アドバイスありがとうございます、【簡単な方法】ですっきりできました! 失念してしまって申し訳ありませんが、リストが60,000行ありデータサイズも30MB超えるものもある為、関数を入れ込んでいる途中で固まってしまうこともあり作業速度が遅かったのでこれでスムーズにできそうです。 非常に助かりました、もう少しデータボリュームが少ないもので関数を使った方法を試してみます。 本当にありがとうございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

データが多い場合には配列数式などを使いますと計算に負担がかかります。元のデータがシート1のA2セルおよびB2セルから下方に入力されているとしたらC列を作業列としてC2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(B$2:B2,B2)=COUNTIF(B:B,B2),MAX(C$1:C1)+1,"")) お求めの表をシート2に作るとしてA2セルには次の式を入力してB2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$C:$C),"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$C:$C,0),COLUMN(A1))) A列についてはセルの書式設定の表示形式で日付を設定します。

piropiro24
質問者

お礼

早速アドバイスありがとうございます、データが重いのか固まってしまい結果まで至れていないのですが関数の活かし方がとても参考になりました。 失念してしまって申し訳ありませんが、リストが60,000行ありデータサイズも30MB超えるものもある為、関数を入れ込んでいる途中で固まることが多々あります… keithin様の簡単操作で解決しましたが、容量の少ないデータで改めてアドバイスいただいた関数を理解して次につなげていきます。 ご丁寧にありがとうございました!

関連するQ&A

  • 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

  • 重複データの削除

    お世話になります。 現在、仕事でお客様のデータ(5万件くらい)を扱っています。 しかしデータをエクセルに取り込むシステムに難があり、同じお客様のデータを重複して取り込んでしまうことがあります。 そこで質問ですが、約5万件あるデータの中から効率よく重複データを削除する方法はありますか? 懸念事項は、同姓同名の方は削除してはいけないという点です。 データ項目は「名前」「住所」「生年月日」「性別」とあるので、 同姓同名でも生年月日や住所で判定することができます。 ちなみに私の考えは、 A列に名前、B列に生年月日とすると・・・ 1)ソート:優先順位はA列⇒B列 2)C列にIF(A1=A2,"重複","OK")として行方向へコピー   D列にIF(B1=B2,"重複","OK")として行方向へコピー   E列にIF(AND(IF(C1="重複",D1="重複")=TRUE,"重複","OK")として行方向へコピー 3)E列で"重複"でフィルタリングし、フィルタされた行の削除 スマートではないですが、私の知識では精一杯です。 何かスマートな方法はないものでしょうか? よろしくお願いいたします。

  • 重複するデータの削除と抽出方法

    はじめまして。 区分   ランク 001  A 002  B 002  B 003  C 004  D 005  E 005  F このようなデータを以下の条件で削除し抽出する方法を教えていただけないでしょうか。 ・区分が重複しているデータを削除したい。 ・しかし区分が重複していてもランクが異なる場合は削除しない。    ↓ 001  A 002  B 003  C 004  D 005  E 005  F エクセルとアクセス両方での方法を教えていただければ有難いのですが・・・(エクセル、アクセスとも初心者です) わかりにくい質問ですがよろしくお願い致します。

  • 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市  データベースが大きいため、手作業で削除して行くのは大変です。適当な方法がありましたら、是非、ご教示ください。  どうぞ宜しくお願いします。  

  • Excel2010で行ごとの重複削除

    Excel2010です。 A行目 1 3 5 5 2 2 3 B行目 2 3 5 5 4 4 C行目 1 9 7 9 9 ↓ A行目 1 3 5 2 B行目 2 3 4 5 C行目 1 7 9 というように、行ごとに重複の削除をしたいと思っています。 データタブに重複の削除があるのですが、列ごとにやるようなので、一度シート全体を 行と列を入れ替えて別シートにコピーして、 1列目全体を選択して、1列目で重複の削除を実行 2列目全体を選択して、2列目で重複の削除を実行 ・・・ というやり方もあるのですが、今扱っているエクセルは197行197列あります。 列選択、重複の削除アイコンをクリックするのを197回繰り返すのは大変です。 自動化する方法はないものでしょうか?

  • EXCEL:2項目で重複するデータを抽出したい

    EXCELで、A,B,C,D・・・とデータが続き、それぞれに重複する複数個のデータがあるときに、重複を省いて抽出することはできるのでしょうか?データ(行)が約5万件ほど合って、手作業では無理な状況です。どなたか、ぜひ教えて下さい! 例: A 青 A 青 A 白 B 赤 B 黄 B 黄 C 青 ↓ A 青 A 白 B 赤 B 黄 C 青

  • エクセルVBAで重複データの削除

    A列、B列、C列・・・とデータが入っていて、B~D列の5行目から10行目が関連の有るデータのかたまりとします。 C~D列の全てのデータが重複している場合に、最初のほうのデータ(行番号が小さいほう)を残すものとして、重複データを削除したいのです。 削除するときは、 B~Dの範囲で削除する。A列等は削除しない。 削除したらデータは上に詰める。 データはソートしない。 ということをやりたいのですが、簡単に出来ますでしょうか? 良く覚えていないのですが、ネット上で色々探してみても、必ずソートしている気がしたので、ソートしない方法が知りたいのですが。

  • Excelで、重複データを一括で削除する方法

    お世話になっております。 Excelで、重複データを一括で削除する方法について 300列ほどあるデータがあります。 (行数は、各列に30行ほどです) 各列には重複するデータがあります。これを削除したく。 なお、各列(隣の列)は、関連性がありません。 よって、複数の列を参照して重複データを削除する必要はなく A列内の重複データ、B列の重複データをそれぞれ削除したいのですが、 フィルタオプションからの重複データを無視する、や、重複データの削除 機能では、1列ずつ実行することで可能ですが、300列以上あるので 現実的ではありません。 そこで、一括で各列の重複データを削除する方法を教えてください。 ※なお、列は300ほどあるため、作業用(countifで重複をピックアップした後、フィルタして 削除など)の方法は、列分つくるのは現実的ではないため、それ以外の方法はないでしょうか。 よろしくお願いします。

  • excelの重複データの削除方法。

    excel2003で重複する値を自動的に削除する方法を探しています。 現在、以下のような手順で作業をしています。     A   B   C 1 ○○○ 100 ABC 2 ▼▼▼ 200 DEF 3 ◇◇◇ 300 GHI 4 ■■■ 400 JKL 5 △△△ 500 MNO ↑の元データに      A   B   C 1 ○○● 100 ABC 2 ◇◆◇ 300 GHI ↑のデータを追加(貼り付け)して並び替えをすると      A   B   C 1 ○○○ 100 ABC 2 ○○● 100 ABC 3 ▼▼▼ 200 DEF 4 ◇◇◇ 300 GHI 5 ◇◆◇ 300 GHI 6 ■■■ 400 JKL 7 △△△ 500 MNO というデータが出来るとします。 「C列の値を基準」として、重複している箇所を検出・削除し (上の例で言えば、1・2・4・5の行。)      A   B   C 1 ▼▼▼ 200 DEF 2 ■■■ 400 JKL 3 △△△ 500 MNO というデータにしたいと考えております。 重複した値のどちらか一方を残す、という方法ではなく、 重複した値の全てを削除する、という方法が解りません。 手作業で1つ1つ削除していけばいいのですが、本物のデータは何千件とあるので 手作業では時間が掛かりすぎてしまいますので…。なにかよい方法はないでしょうか? 簡単な方法であれば大変助かりますが、マクロなどを使用する方法でもかまいませんのでご教授下さい。 よろしくお願い致します。

  • 重複データについて

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

専門家に質問してみよう