- ベストアンサー
エクセルの関数について教えてください。
データベースに入力されている顧客の『履歴データ』をエクセルにコピーしました。 エクセルで加工して使おうと思っています。 ただ『履歴データ』のため、同じ顧客が複数あります。 加工のために必要なのは、その履歴に1回でものってきた顧客コードです。 そこで『重複するデータがある場合、1つを残して他のデータを削除する』という関数はないでしょうか? 書式の中に、『重複しているデータに色(パターン)を付ける』というやり方は知っているのですが、1件1件削除していくのは大変な作業ですし、間違って削除してはいけないデータまで削除してしまいそうで不安です。 どうか皆様のお力をお貸しください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
http://okweb.jp/kotaeru.php3?q=960076 に似たような質問が出ました。その#2です。 そこでのC列のC2の式を =IF(COUNTIF($A$2:A2,A2)=1,MAX($C$1:C1)+1,"") に変えてやっていただければ、重複しないものを移せ(いわばコピー)ます。参考にしてください。
その他の回答 (2)
ほとんど同じ質問でした。↓ http://okweb.jp/kotaeru.php3?q=960076
お礼
なるほど。 この答えのNo.2の方のやり方で通し番号をつけて、並べかえをすれば、削除するのは楽ですね。 ありがとうございました。
- anmochi
- ベストアンサー率65% (1332/2045)
う~ん。一番手っ取り早いのは、データを顧客順にソートして、上から全部舐めていって1行上のレコードと同じ顧客だったらその行を削除する、というマクロを書く事ではないだろうか。 ただ、「データベースから引っ張ってくる」とあるが、その時点で例えばSQLなどを使って、そもそも引っ張ってくるデータを1顧客1レコードにする方法は取れないだろうか? DBが何か、どのような方法で引っ張っているのかなどが分かればもう少し詳しい答えができるかも知れないが。 例えば、DBはOracleを使っていて、Microsoft QueryでExcelに直接持ってきている、とか。
お礼
データベースは、アクセスです。 単純にコピー・ベーストでエクセルにもってきました。 元のデータをいじりたくはありません。 いい方法がありましたら詳しく教えてください。 よろしくお願いします。
お礼
ありがとうございます。 さっそく試してみます。
補足
教えていただいた通りにやってみました。 重複しているデータの1つめに数字がつきました。 これで“並べ替え”をすれば、簡単に余分なデータを削除できます。 ありがとうございました。