• ベストアンサー

excelで入力値の有無自動検索方法を教えて

次のような事が可能かどうかわかりませんが、何かよい方法がありましたら教えて下さい。 30列ぐらいあるデータを1行または複数行をコピーし、保存用に作ったExcelファイルのシート1に貼り付け、保存していきたいのですが、この際、データに重複がないか、自動でチェックしたいのです。 現在、シート2のA2に=COUNTA(シート1!A:A)と入力しておき、 データをシート1に貼り付けた後、重複しないキー(セルAに入る数値)を コピーしシート2のA1に貼り付けて、セルA2の値をチェックしている状態です。 この方法だと、1件ずつしかチェックできません。 しかも、何度もシートを移動し、コピー&貼り付けを行わなくてはならないので面倒なのです。 簡単のチェックできる方法はないでしょうか? アドバイスをよろしくお願い致します。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

並べ替えでデータの多い順に並べる 上のほうに重複したデータが並ぶので重複したデータがあると分かる …これでは自動ではありませんね 作業用の列をA列に挿入して A1セルに  =IF(B1="",0,COUNTIF(B$1:B1,B1)) などと入力し必要な行までコピーする 1行目に行を挿入して A1セルに  =MAX(A:A) などと入力する A1セルに 1 以外の数値が表示されたら重複したデータがある あとはセル単位でコピーしてきてB列2行目以降に貼り付け、A1セルを監視するだけでデータの重複を見分けられます こんなんじゃダメですか ※ IF関数、COUNTIF関数、MAX関数の詳細は Excelのヘルプを参照してください

kyonmimi2006
質問者

お礼

Cupperさん、ありがとうございました。 別シートからでも参照できそうなので、教えていただいた方法でやってみようと思います。

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

>データは、あるソフトのデータを数件ずつCSV形式で落とし、 数件ずつ というのも手間ですよね。 あるソフトとは何でしょうか? エクセルであれば データ=>外部データの取込=>データの取込 のウィザードの ファイルの種類 或いは 新しいソースで ご使用中のデータベースが見つかりませんでしょうか? アクセスであれば ファイル=>外部データの取込=>インポート 或いは リンク で見つかりませんでしょうか CSV形式であれば、TEXTFILEを選択してみてください。 その辺りまでが可能になったらもう少し具体的に質問してみてください。 エクセルであれば VBAの作成でボタンひとつの作業に アクセスであれば、不一致クエリ、追加クエリの作成で、ボタンひとつの作業に 出来ると思います。 敷居はエクセルのVBAよりアクセスのクエリの方が簡単な様な気がします。

kyonmimi2006
質問者

お礼

hallo-2007さん、お礼が遅くなってすみません。 また、説明不足ですみません。 アドバイスどうもありがとうございました。<m(__)m>

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

VBAでも使わないと出来ないようなことを、関数でやって不便だといっていると思う、VBAでも勉強すること。仕事の関連の作業だと思うが 、仕事にエクセルを使うのはVBAを使わないと、不便な場面は頻出すると思う。 ーー データがコピー貼り付けによって動的に変化することが関数での処理では複雑になる要因だと思う。 ーー コピー後の貼り付けデータはキーでソートされ無いのでしょうね。 多対多行の重複関係を調べるのは、VBAでもロジック的には難しい。 ーー A列にキー項目データがあるとして、 A列で将来増える行数を考慮して余分目に範囲指定して 書式ー条件付き書式ー数式が、で 数式に =COUNTIF($A$1:A1,A1)>1 書式をセルのパターン色を設定。 ーー これでA列に以前(上)の行にあったデータと同じものが貼り付けられると、色が変わる。それでもって重複を察知して、行削除を行って、A列でのセルのデータの唯一性を保つのはどうでしょう。 -- 質問表現は、内容をシート・行・列・例データを具体的に示して、作業的に1ステップずつ、具体的に記述のこと。

kyonmimi2006
質問者

お礼

imogasiさん、お礼が遅くなってすみません。 また、説明不足にもかかわらず、アドバイスして下さって、ありがとうございました。 参考にさせていただきます。<m(__)m>

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

コピィ元のファイルのシートに =COUNTIF('[保存ファイル.xls]保存シート!'A:A,A1) と入れて下までコピィすると 保存ファイルの保存シートにA列に同じ内容がある場合に 0 以外がでます。 オートフィルターで 0だけを表示してコピィしては如何でしょうか。 別案ですが、保存用のファイルですので長期間で考えてみてデータ数が膨大になることありませんか? アクセスがインストールされているパソコンがあれば、 アクセスに不一致クエリという機能がありますので、一度、条件を設定すれば、次からは重複のないでデータだけがボタンひとつで追加されていくようになります。

kyonmimi2006
質問者

お礼

hallo-2007さん、説明不足ですみません。 データは、あるソフトのデータを数件ずつCSV形式で落とし、 それをコピーして一つのExcelファイルにまとめているのです。 CSV形式に落とす際にもうすでに落としたことがあるものを 省ければよいのですが、それが難しいのです。 アクセすにしようかとも考えたのですが、 Excelデータのレコード(データ)追加のやり方がわからず、 断念しちゃいました。(^^ゞ hallo-2007さん、アドバイスどうもありがとうございました。

関連するQ&A