• ベストアンサー

エクセルの関数について教えてください。

データベースに入力されている顧客の『履歴データ』をエクセルにコピーしました。 エクセルで加工して使おうと思っています。 ただ『履歴データ』のため、同じ顧客が複数あります。 加工のために必要なのは、その履歴に1回でものってきた顧客コードです。 そこで『重複するデータがある場合、1つを残して他のデータを削除する』という関数はないでしょうか? 書式の中に、『重複しているデータに色(パターン)を付ける』というやり方は知っているのですが、1件1件削除していくのは大変な作業ですし、間違って削除してはいけないデータまで削除してしまいそうで不安です。 どうか皆様のお力をお貸しください。 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

http://okweb.jp/kotaeru.php3?q=960076 に似たような質問が出ました。その#2です。 そこでのC列のC2の式を =IF(COUNTIF($A$2:A2,A2)=1,MAX($C$1:C1)+1,"") に変えてやっていただければ、重複しないものを移せ(いわばコピー)ます。参考にしてください。

d_and_c_16
質問者

お礼

ありがとうございます。 さっそく試してみます。

d_and_c_16
質問者

補足

教えていただいた通りにやってみました。 重複しているデータの1つめに数字がつきました。 これで“並べ替え”をすれば、簡単に余分なデータを削除できます。 ありがとうございました。

その他の回答 (2)

noname#49904
noname#49904
回答No.2

 ほとんど同じ質問でした。↓ http://okweb.jp/kotaeru.php3?q=960076

参考URL:
http://okweb.jp/kotaeru.php3?q=960076
d_and_c_16
質問者

お礼

なるほど。 この答えのNo.2の方のやり方で通し番号をつけて、並べかえをすれば、削除するのは楽ですね。 ありがとうございました。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 う~ん。一番手っ取り早いのは、データを顧客順にソートして、上から全部舐めていって1行上のレコードと同じ顧客だったらその行を削除する、というマクロを書く事ではないだろうか。  ただ、「データベースから引っ張ってくる」とあるが、その時点で例えばSQLなどを使って、そもそも引っ張ってくるデータを1顧客1レコードにする方法は取れないだろうか?  DBが何か、どのような方法で引っ張っているのかなどが分かればもう少し詳しい答えができるかも知れないが。  例えば、DBはOracleを使っていて、Microsoft QueryでExcelに直接持ってきている、とか。

d_and_c_16
質問者

お礼

データベースは、アクセスです。 単純にコピー・ベーストでエクセルにもってきました。 元のデータをいじりたくはありません。 いい方法がありましたら詳しく教えてください。 よろしくお願いします。