リストの重複が入力時に判別できる方法を教えてください。


今、エクセルで条件にあったホームページのリストを作っています。

URLとメールアドレスの重複がチェックできるように

=IF(COUNTIF($E$2:E2,E2)>1,"*","")

という関数を使って重複しているデータに*がつくようにしているのですが、3000件を越えたあたりから再計算に時間がかかって仕方がありません。

入力した時点で重複が快適に分かる方法ってないでしょうか。

最後に一覧で見られれば、エクセル以外のソフトを使ってもOKです。

よろしくお願いします。

回答の条件
  • 1人50回まで
  • 登録:2006/08/09 09:58:19
  • 終了:2006/08/16 10:00:03

回答(5件)

id:ohmix1 No.1

ohmix1回答回数235ベストアンサー獲得回数142006/08/09 12:21:50

ポイント20pt

重複をチェックするEXCELアドインがありました。

入力した時点ではわからないので、ダメでしょうか?


http://hp.vector.co.jp/authors/VA011407/vbasoft/DupCheck/rea...

id:takllin

ありがとうございます。

出来れば入力した時点で分かったほうがベターです。

2006/08/09 18:26:18
id:gong1971 No.2

gong1971回答回数443ベストアンサー獲得回数682006/08/09 13:05:53

ポイント20pt

入力規則を使われてはいかがでしょうか?


  1. E2をアクティブセルとし、E2:E3000(必要行まで)を範囲選択します。
  2. [データ]メニューから[入力規則]をクリックします。
  3. [設定]タブで[入力値の種類]を[ユーザー設定]とします。
  4. [数式]に =COUNTIF($E$2:E2,E2)<2 と入力し、[OK]をクリックします。

これであれば、該当セルを入力する時に、その値だけチェックを行います。

逆にいままでの方法ですと、該当セルに限らずどのセルに入力しても

数式が再計算されるので、設定したセルの数(3000)だけ再計算が行われ

非常に時間が掛かってしまいます。

id:takllin

ありがとうございます。

うーん、コピーペーストで入力すると反応してくれないです。。。

2006/08/09 18:41:25
id:hokuraku No.3

hokuraku回答回数530ベストアンサー獲得回数972006/08/09 15:31:16

ポイント20pt

入力した都度、ではないのですが「最後にまとめて見られれば…」というのに当たるでしょうか?

1)ID用に1列作成し、通し番号をつける。

2)url(or mail address)で並び替えをする

3)空いている列のあたまに以下の関数を入れる

=if(E1=E2,"*","")

つまり、ひとつ上の行のものと比べて同じなら*をつける。

4)関数列をコピーし、「形式を選択して貼り付け>値」

5)ID列で並べ替えをして元の順序に戻す

元の順番を保持する必要がなければ2,3のみでOKです。

データを蓄積し、週に一度程度確認する、という程度なら十分実用的でした。

id:takllin

ありがとうございます。

日々リアルタイムなので、すぐ見れるほうがいいですね。

2006/08/09 18:43:20
id:hokuraku No.4

hokuraku回答回数530ベストアンサー獲得回数972006/08/09 20:47:59

ポイント20pt

ではもうちょっと頑張ってみましょう。

urlの入っている列をE列とします。

1)「データ」>「ピボットテーブル」でE列のピボットテーブルを作ります。

2)ピボットテーブルのレイアウトは左側にurl、データ部分はurlの個数にします。

(ピボットの行をSheet2!A、データ部分をSheet2!Bとします)

3)*をつけるチェック列に以下の関数を入れます。

=if(vlookup(E2,Sheet2!A:Sheet2!B,2,false)>1,"*","")

4)オートフィルをかけて最終行まで伸ばします。

5)確認するときは

5-1)urlを入力した後

5-2)ピボットテーブルの更新をする

と言う手順になります。

どうでしょう?データの種類によりますが、少しは再計算が速くならないでしょうか?

id:takllin

ありがとうございます。

うーん、あんまり変わらないような。。。

2006/08/10 09:04:57
id:gong1971 No.5

gong1971回答回数443ベストアンサー獲得回数682006/08/09 23:23:37

ポイント20pt

回答 2 の者です。他の方法を検証してみたところ、[条件付き書式]が良いようです。

コピーペーストにも対応しますし、計算に時間も掛かりません。


■前提条件

  • E2:E3000にデータを入力
  • 重複の場合はF2:F3000のセルの色を変更
  • F2:F3000のデータや数式は予め消去しておく

■設定方法

  1. F2をアクティブセルとし、F2:F3000を範囲選択します。
  2. [書式]メニューから[条件付き書式]をクリックします。
  3. [数式が][=COUNTIF($E$2:E2,E2)>1]と設定する。
  4. [書式]ボタンをクリックし、[パターン]タブで適当な色を選択。
  5. [OK]を2回クリックしダイアログを閉じる。


以上、こちらでも検証しましたが、IF関数を使用した場合より

明らかに高速になっており計算時間は感じられませんでした。

id:takllin

ありがとうございます。

結構早いですね。

あとはオートフィルタなどで重複データを一括削除できればカンペキなんですが。

2006/08/10 09:07:02

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません