グッドデザイン賞を受賞したウォーターサーバー >>

エクセルの重複データを抽出し、最新のデータを残したいです。
A列 B列
1 aaa@aaaa.co.jp 2014/1/1
2 bbb@aaaa.co.jp 2013/1/2
3 aaa@aaaa.co.jp 2014/1/10
4 aaa@aaaa.co.jp 2014/10/10

A列にアドレス、B列に日付が入っているデータがあります。
(他にC列などにも顧客情報が入っています。)
アドレスの重複データを抽出し、最新の日付の行が残るようにしたいです。
この場合ですと2と4が残るようにしたいです。
膨大なデータの為、困っています。
良い方法をご存知の方、よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>膨大なデータの為、困っています


>良い方法を

ホントに膨大なら,下手な細工より手を動かした方が確実に良い方法です。
ご利用のエクセルのバージョンが不明のご相談なので,エクセル2007以降を使います

手順:
全体をA列の「降順」で並べ替える
データタブの「重複の削除」を開始,B列にチェックして削除する
必要に応じて全体をA列昇順で並べ戻す。
    • good
    • 9
この回答へのお礼

ありがとうございます。
大変助かりました!

お礼日時:2014/05/02 10:35

こんばんは!


B列の日付は必ず昇順になっているとして・・・
やり方だけです。

↓の画像で左側が元データのSheet1でSheet2に表示するようにしています。
Sheet1のC列(←使っていない列にします)を作業列として使います。
C2セルに
=IF(A2="","",IF(COUNTIF(A:A,A2)=COUNTIF(A$2:A2,A2),ROW(),""))
という数式を入れフィルハンドルでダブルクリック!

Sheet2のA2セルに
=IF(COUNT(Sheet1!$C:$C)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$C:$C,ROW(A1))))
という数式を入れ隣りのB2セルまでフィルハンドルでコピー!
そのまま下へコピーすると画像のような感じになります。

※ B列の表示形式は「日付」にします。m(_ _)m㺘
「エクセルの重複データを抽出し、最新のデー」の回答画像2
    • good
    • 1
この回答へのお礼

丁寧に回答してくださってありがとうございます!
助かりました!

お礼日時:2014/05/02 10:17

エクセルのバージョンが不明ですが


二つの操作を行います。
並び替え
A~C列以降データを選択、B列の日付で降順に並び替え

重複データの削除
データのリボンにある 重複の削除の実行
A列のみチェックを入れて実行すればOKです。
    • good
    • 3
この回答へのお礼

お早い回答ありがとうございます。
大変助かりました!
さっそくやってみます!

お礼日時:2014/05/02 10:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 最新データのみを表示させたい場合

エクセルに、名前と来訪日がのったシートがあったとします。
その名前の最終来訪日のみを表示させる、関数等はございますでしょうか?

   A列  B列 
1 佐藤 2008/10/5
2 鈴木 2008/1/20
3 上田 2008/5/25
4 鈴木 2008/9/15
5 小野 2008/3/7
6 上田 2008/2/3
7 佐藤 2008/10/16
8 鈴木 2008/11/13
9 佐藤 2008/9/8
    ・
    ・
    ・
シンプルに見えて、意外と難しく私の知識では対応できませんでした。
お手数ですが、お知恵をいただけますと幸いです。

Aベストアンサー

並べ替えてもいいのかな
1. タイトル行を設け
2. データ-並べ替え
 最優先 名前 : 昇順(降順)
 2番目 日付 : 昇順(降順)
3. [OK]

1. データ - 集計
 グループの基準 名前
 集計の方法 最大値
2. [OK]

3. [2]をクリック

Q【EXCEL】条件に一致した最新データのみを抽出

名前・住所・電話番号・注文日・注文内容を記入したExcelファイルを使用しています。
電話でお問い合わせがあった際、電話番号で検索し、
過去のお問い合わせのうち、一番直近のデータで住所やお名前を抽出したいのですが
電話番号を入力すると、名前と住所を一番直近のデータ1つのみ表示させる方法はありますか?
オートフィルタではなく関数を使用して、抽出したいです。

どなたか分かる方、ご指導願います。
VLOOKUPでは古いデータしか反応しなかったので困っております。

Aベストアンサー

簡単のため,日付については上から昇順で記入できているとして。
A列に名前
B列に住所
C列に電話
D列に注文日
E列に注文内容
として。(こういった具体的な姿とかも,手抜きせず情報提供して下さい)

H1に電話番号を記入するとして
=IF(COUNTIF($C:$C,$H$1),INDEX(A:A,SUMPRODUCT(MAX(($C1:$C3000=$H$1)*ROW($C1:$C3000)))),"初見")
と記入,右にコピー。



#参考
>VLOOKUPでは古いデータしか反応しなかったので困っております。

全体を「日付の降順で並べ替えて」VLOOKUPしてやれば,簡単に最新のデータが計算できます。
マクロ等を併用し,「新しく追記したデータを常にリストの上から挿入していく」といった手段を併用するのも,VLOOKUP関数など簡単な方策で計算できる手助けになります。

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcelで、条件と一致する最後のセルを検索したい

Excelで、条件と一致する最後のセルを検索したいのですが、どの関数をどのように使えばいいかわかりません。
どなたかお力をお貸し下さい。

問)
日付  社名  品名  個数
1/1   A    あ    1
1/1   C    い    2
1/2   B    う     3
1/2   A    え    4
1/3   C    お    5
1/3   A    あ    3

答)
A社の最終購入日は  1/3 あ 3
B社の最終購入日は  1/2 う  3
C社の最終購入日は  1/3 お 5

となるようお願いします。

Aベストアンサー

エクセルには「最後の該当」を検索する関数はありません。
無駄に複雑な数式を駆使すればもちろん「やればできます」が、添付図のようにちょっと工夫するだけで、普段使いの数式だけでやっつけるのがお勧めです。

A2:
=IF(OR(C2="",COUNTIF($C$2:C2,C2)<COUNTIF(C:C,C2)),"",C2)
以下コピー

答えは簡単なVLOOKUP関数を使うだけです。
H2:
=IF(COUNTIF($A:$A,$G2),VLOOKUP($G2,$A:$E,2,FALSE),"")




まぁ一応ご参考に作業列を使わない方法:
H2:
=IF(COUNTIF($C:$C,$G2),INDEX(B:B,MAX(IF($C$2:$C$999=$G2,ROW($C$2:$C$999)))))
と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力する

説明は省略しますので、ブラックボックスで使ってください。

QExcelで同じ商品名で、かつ日付が古いものを抽出する方法

ご存知の方、いらっしゃいましたらお願いします。
Excelは2003を使用しています。

複数の条件での抽出で名前が決まっているものは「フィルタオプションの設定」で行っていますが、日付が古いもの、新しいものの抽出方法がわかりません。
「同じ商品名」かつ「日付が古いもの」を抽出したいのですが、それが出来そうな関数、マクロはありますでしょうか。
当方マクロ知識は「マクロの記録」程度です。

A列  B列    C列
商品A 2007/12/01 10:00
商品B 2008/04/01 10:00
商品A 2008/05/01 10:00

現在は目視、手動で★印を別列につけ、それを抽出し削除しています。
削除フラグとして★印等をつけるようなものでも、わかれば嬉しいです。

Aベストアンサー

1.商品名を第1キー、日付を第2キーとして昇順に並び替えます。
2.D1に1を入力し、D2からは=IF(A1=A2,0,1)を入力して下方向へコピー

これでD列の「1」のみ抽出して削除します。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcelですが、同一データが複数あるとき、検索して、その全部を抽出する方法

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお願いします。

<データシート>
 列A  列B    列C 列C
行1 No 会社名   所属 担当者
行2 1 A株式会社  ○事業部  坂下順人
行3 2 A株式会社  △事業部  滿山友人
行4 3 A株式会社  △事業部  目標達子
行5 4 B株式会社  設計部山下清人
行6 5 B株式会社  営業部横浜美人
行7 6 C株式会社  営業部川崎次郎
行8・・・・・・・・・・・・

<検索結果:別のシートにおいて>
行1 会社名 所属  担当者
行2 A株式会社 ○事業部 坂下順人
行3 A株式会社 △事業部 滿山友人
行4 A株式会社 △事業部 目標達子

Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。

Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。

例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお...続きを読む

Aベストアンサー

#03です
>最後のROW(T1)で、T1を参照しておりますが

ROW(T1)は「1番目」を意味しています。T1セルに何もなくても関係ありません。コピーしたの行はROW(T2)になりますが、これは2番目のという意味です

#REF!エラーになりますか?
私が示した条件と何か変えていませんか?
別シートのA1に「抽出する会社名」を入力してあれば、回答したような結果になるはずですが‥ (テストしてありますので)

ただし2000行もあるならVBAの方が良いかもしれません
きっと「シートが重くなる」と思います

Q最新の日付をVLOOKUP

最新の日付をVLOOKで検索するにはどうしたらよいでしょう?
たとえばエクセルAのシートを参考にしてエクセルBに検索地を
顧客NOにして日付をVLOOKしたとします。
このとき、顧客NOは同じで複数日付があるのですが、検索されるのは一番古い日付です。私がヒットさせたいのは最新の日付なのですが、何か良い方法はないでしょうか?(最新の日付を一気にとりだせるのなら別にVLOOKじゃあなくてもよいです「)

エクセルAのデータ
顧客NO 日付
1234 2007/3/4
1234 2008/3/4
7788 2007/4/5
7788 2008/5/4
9988 2008/4/5
9988 2008/5/8

Aベストアンサー

顧客NOを第一キーで並べ替えてるみたいだけど、そのときに日付を
第二キーで降順に指定すると、同じ顧客NOの中では最新の日付が上
にくるよね。そうしたら探し方は今と同じで、希望通りの値が返っ
てくるんじゃないかな。

表を全く並べ替えないとしたら、
=max(index((顧客NOの範囲=検索値)*日付の範囲,0))
みたいな手口を使うけどね。

Q2つのシート間での重複データのチェック

Excelについて教えてください。
以下の2つのシートがあります。

Sheet1
すずき 03-0000-0000
やまだ 03-1111-1111
たなか 03-2222-2222

Sheet2
03-1111-1111
03-4444-4444
03-0000-0000
03-2222-2222

Sheet1には名称と電話番号、Sheet2には別所から抽出した電話番号のみのデータがあります。
Sheet1のデータの中からSheet2に電話番号があるものだけを知りたいのですが、たとえばSheet1の 各行のC列 に Sheet2に一致する番号があった場合は●等付けるにはどうすればよいでしょうか。

よろしくお願いします

Aベストアンサー

シート1のC列に式を入れます。
=IF(ISNA(VLOOKUP(B1,Sheet2!A:A,1,FALSE))=TRUE,"-","●")

【式の説明】
シート1のセルB1の値が、シート2のA列に、存在する場合は●を、存在しない場合は-をセット。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング