• ベストアンサー

「コピペについて」EXCEL初心者です。簡単にお願いします。

今仕事で、EXCELを使ったデータ入力作業を行っています。 5000件のデータを入力し終わり、いざ本元のシートへとコピペしようとしたのですが、うまくいきません。 本元のシートというのは15000件のレコードを持つEXCELデータです。今回のデータ入力分シート(前述の5000件)はこの中から選出されたデータであるため順不同(レコードが飛んでいる、すでに入力済みなど。手作業で行われているためどこが抜けているか判断しづらい)です。 よって、フィルタオプションを使用して、本元のシートから5000件のシートを検索条件とし、抽出しました。本元のシートはうまく5000件のシートと同じように並んだのですが、コピペでどうしても躓いてしまいます。 範囲指定からコピペをしても、「コピー範囲と貼り付けの領域が違う」と怒られた為、一番トップにあたるセルを選択しペーストをしたのですが、なぜか、レコードがずれて入力されてしまうのです。 このとき本元のシートを全て表示してみると、抽出されていないレコードにデータが入力されていました。 どなたか、いい方法を教えていただけませんか?初心者ですので簡単な方法をお願いします。。。

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

  • ベストアンサー
  • kosouitom
  • ベストアンサー率60% (6/10)
回答No.3

ANo.2です。 先に回答させていただいた補足になりますが、VLOOKUP関数で参照した値が表示されている状態で(フィルタを解除した状態にして)全体をコピー、値だけ貼り付けにすれば固定のデータをペーストした状態になります。 ただ、更新の度に同様の作業は必要になりますが・・・。 少し気になったのですが、現時点で1万5千件のデータを今後継続して管理・作成されていくのですよね?エクセルは確かデータの限界が6万5千件くらいだったかと。データベースとしての管理という点からするとエクセルではなくアクセスを使われた方が良いように感じます。 アクセスでしたら、データの上限は確か無かったように思いますし、既存のエクセルファイルを基に作成もできますよ。

minorpenta
質問者

お礼

ありがとうございます。お蔭様で無事解決しました。値のコピーに気づきませんでした。情けないです。。。 今の状況はデータを手で入れていかなければいけない状態で、新入社員や作業員としてのアルバイトに向いているものとしてエクセルを使用しているのだと思います。 また、アクセスや本格的にデータベースを使用するようになればまたお世話になるかもしれないです。 機会があればよろしくお願いします。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#01です。 >修正したシートで指定されたフィールドにあるデータを同じ固有ファイル名のものへコピペ、または、それと同じ結果になるようにしたいのですが。。。 もし元本シートと、修正シートのデータ構成(列の並び)が同じで行数だけが違うのであれば、先に回答した方法で置換は可能です(ただし一旦別シートに貼りつけるという方法をとりますが) また元本シートと、修正シートのデータ構成が違うのであれば、マクロを組めば実現可能です。ただし質問文の情報だけでは要望に完全にフィットするマクロは組めません。組むとしてもこちらの想定が入りますので、細部をご自身で直していただく必要がありますので、全くのVBA初心者であれば、すこし難しいと思います。

minorpenta
質問者

お礼

既存の回答で解決しました。私のような全くの初心者にレベルを合わせて丁寧に解説して下さったことを感謝いたします。 マクロや、VBAという言葉は知っているのですが全く知識としてない状態です。。。 これから勉強していこうと考えています。 ほとんど使い慣れないソフトのため、これからも質問を書き込むことがあると思うので、その際にはまたご助力の程お願いいたします。ありがとうございました。

  • kosouitom
  • ベストアンサー率60% (6/10)
回答No.2

ご質問内容からすると フィルタをかけてデータを抽出し、抽出したデータをコピーして別のシートに貼り付け、データの入力をしてから元のシートにフィルタをかけた状態で貼り付けしようとされているんでしょうか? これは多分うまくいかないのではないかと・・・。 フィルタをかけてデータを抜粋表示させたとしても本来のシートにあるデータの並び順などは変わりませんから・・・。 抜粋したデータと元のデータに何か固有のナンバーなどはありませんか?もしあるのであれば少々手間はかかりますが「VLOOKUP」関数を使ってデータを移すことはできます。この関数を使ってフィルタをかけたまま式をコピー(普通の”コピー”ではなくて式の入力しているセルのすみっこが少し太めの「十」になった状態でそのまま下に引っ張るように)していけばいけると思います

参考URL:
http://www11.plala.or.jp/koma_Excel/contents3/mame3023/mame302301.html
minorpenta
質問者

補足

ご回答ありがとうございます。とても参考になりました。 しかし、こういった関数を知らないあまりに説明不足となってしまいました。申し訳ありません。。。 本来のシートは修正されたシートとは別のBOOKであり、また本来のBOOK上に新しくシートを作るということが出来ない状態です。これからも膨大な量となり、いろいろな方法で使用される重要なBOOKとなりうるのでわかりやすく綺麗なままで残して置きたいようなのです。 ですので、あくまで「空白セルを埋めて欲しい」という感じです。 一度シートを作成して試してみましたがVLOOKUP関数を使用した場合、固定のデータをそこにペーストするのではなく、別シートから参照して表示をするといったように見受けられます。これからも、修正や追加を行うため、そのたびシートが増加していては上司の求めるものではなくなってしまいそうです・・・。 上記には私の勉強不足な点があるかもしれません。それも含めどうかご助力お願いします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

色々な方法が考えられますが、フィルタオプションはご存じのようですから以下のような方法ではどうでしょうか 1)元々のシートと、今回修正したシートに1列追加し、「更新歴」とタイトルを入れる。 2)元のシートの更新歴列は全て数字の1を入れる。修正したシートは同様に数字の0を入れる。 3)修正したデータを元のシートの一番下に貼りつける。そして最優先キーに「何らかのキー情報」、2番目に優先するキーに「更新歴」を指定して並べ替えする。 4)フィルタオプションで「キー情報の列は重複を無視する」設定にする  → これで重複するデータは今回更新した情報が優先して表示されるはずです。 5)表示結果全体をコピーして、別シートに貼りつける。

minorpenta
質問者

補足

迅速なご対応ありがとうございます。 私に説明不足な点がありましたので補足させていただきます。申し訳ありません。 まず、本来のシートにはキーとして、固有ファイル名が存在します。修正したシートにもこれは存在して一致したデータです。このことにより、フィルタオプションを使用した抽出が可能となりました。 またこちらの本元シートには修正シートにはないデータが入力されている状態です。その状態というのが、全てのレコードに半分ずつといった感じです。もちろんこのデータを消してしまうわけにはいきません・・・。 修正したシートで指定されたフィールドにあるデータを同じ固有ファイル名のものへコピペ、または、それと同じ結果になるようにしたいのですが。。。 つたない説明で申し訳ありませんが、どうかご助力の程お願いいたします。

関連するQ&A