アプリ版:「スタンプのみでお礼する」機能のリリースについて

顧客の最初の購入日である最も古い日付の行を残し、他の行を削除したいです。
同じ顧客で同じ日付が複数の行に分かれてる点などに手を焼いております。
データ量が多いいために手作業では限界がある次第でございます。
画像の★に当てはまる条件の行を抜き出したいです。
エクセル2013を使用しています。
お力添えお願いいたします。

「エクセルの重複削除について」の質問画像

質問者からの補足コメント

  • ・・・。

    単純に「データ」→「重複の削除」をした場合、最初に複数購買した顧客は同じ日付の行が複数存在しているのですが、一番上のみ残し、他の最初の購買情報が消えてしまいます。
    顧客の最初の購買情報を全て求めることを目的としております。

      補足日時:2017/01/06 18:42

A 回答 (6件)

消す行と消さない行を判定する式の入った列を作ります。

(画像の★を自動で判定して表示するセルです)
フィルタを利用して★の付いている行のみ表示にすれば、見た目上は問題ないと思います。
データを消してしまう事が必要なのであれば、★の列でソートすれば、★の有無で分かれるので、まとめて削除できます。

★の自動判定式としては、(画像のように顧客順でさらに注文日順にソートされているものとします)
その行の顧客が1つ上の顧客と同じかどうかを判定します。
別であれば、その行は確実に初回のデータなので★をつけます。
上の顧客と同じである場合、上の行に★が付いているかを判定します。
上の行に星が付いていない場合、もっと上に初回のデータがあるということなので、★はつけません。
上の行に星が付いていた場合、日付を比べて判定します。
日付が同じであれば、それは初回のデータということになるので★をつけます。
日付が別であれば★はつけません。

IFを並べただけなので難しくはないと思いますが、必要であれば式の中身を書きますので、連絡ください。
    • good
    • 0

> 他の最初の購買情報が消えてしまいます。


重複の削除の条件を [顧客]だけにすればいいです。
    • good
    • 0

E2セルに次の式を入力して、下にオートフィルでコピーすれば、必要な行に★印が表示されます。


後はオートフィルタ等でお望みのことをやってください。

=IF(COUNTIFS(C:C,C2,D:D,"<"&D2)=0,"★","")
    • good
    • 1

マクロなら、


sheet1が元データとすると、sheet2へ重複データを削除した結果を出力するように出来ますが、
いかがでしょうか。
    • good
    • 0

A・Cさんは全部消すのですか? イマイチ分かりませんが。


注文日降順・顧客昇順にソートしてから [データ]の[重複の削除]を
顧客指定で実行するのでは何か問題がありますか?
終わってから 注文日昇順にソートし直せばいいですよね。
    • good
    • 0

こんにちは!



削除ではなく、別シートに抽出する方法ではどうでしょうか?
一例です。
元データはSheet1にあり、Sheet2に表示するとします。

↓の画像のようにSheet1に作業用の列を設けます。
作業列E2セルに
=IF(D2=MIN(IF(C$2:C$1000=C2,D$2:D$1000)),ROW(),"")

配列数式ですので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → E2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shift+Enterで確定!
E2セルのフィルハンドルでダブルクリック!

そしてSheet2のA2セル(配列数式ではありません)に
=IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!$E:$E,ROW(A1))),"")

という数式を入れD2セルまでフィル&コピー! → D2セルの表示形式を「日付」に変更し
A2~D2セルを範囲指定 → D2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

※ とりあえずSheet1の1000行まで対応できる数式にしていますが、
データ量によって範囲は適宜広げてください。
※ 配列数式はPCにかなりの負担をかけ、極端に範囲を広げすぎると計算速度が遅くなります。
5000行程度であれば大丈夫だと思います。m(_ _)m
「エクセルの重複削除について」の回答画像1
    • good
    • 1

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