- ベストアンサー
Excelでの貼り付けについての質問
- Excelでの貼り付けについて求められているのは、飛び飛びになっている行に1行ずつデータを貼り付ける方法です。具体的には、シート1の2、4、6行目をシート2の1、5、10行目に貼り付けたいという要望です。ただし、他の行にデータが存在しているため、シート2の1、5、10行目以外にデータが上書きされることは避けたいということです。しかし、簡単な方法は存在せず、マクロを使用する必要があるかもしれません。
- Excelでの貼り付けについての質問です。飛び飛びになっている行に1行ずつデータを貼り付ける方法を教えてください。具体的な要望は、シート1の2、4、6行目をシート2の1、5、10行目に貼り付けたいということです。ただし、他の行に既にデータが存在しているため、上書きされないようにする方法も知りたいです。
- Excelで飛び飛びになっている行に1行ずつデータを貼り付ける方法について質問です。具体的な要望は、シート1の2、4、6行目をシート2の1、5、10行目に貼り付けたいということです。ただし、他の行に既にデータが存在しているため、上書きされないようにする方法も知りたいです。マクロ以外にも実現できる方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>元データがcase1.txtからcase10.txtまであるとし、それぞれををシート1からシート10で整理したいです。 例えば、取り込み元のファイル名がどこかのセルに書かれているなら、INDIRECT関数を使って、そのファイル名を付けたシートに値を飛ばすことができますが、基本的に関数では値を変更すると上書きされてしまうので、同じシートの値を別のシートに振り分けることはできません。 もし、すべての転記先のシートが同じレイアウトなら、シート1の2、4、6行目に値を返すのではなく、転記先と同じセル番地にそれらの値を表示させるように設定しておき、コピー貼り付けするときに「値」貼り付けでなく「数式」貼り付けすれば、結合セルの制限の問題は解決できると思います。 いずれにしろ、コピー元のテキストファイルのファイル名がどこかのセルに入力されているなら、簡単なマクロコードで対応できますので、このようなケースではマクロを利用されることをお勧めします。
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
補足説明をしていただいたのですが、作業内容を理解できません。 >形を整える用シートには何度も様々な元データを当てはめるので、コピー元の値はすぐに変わってしまうのでご提案いただいたリンクも使えないかと思います。 普通なら単純にリンクすればコピー元の値を反映すると思うのですが・・・・ >元データが複数あり、それらを個別のシートで希望の形式でまとめたい。 >希望の形式にするための整形用シートは1つだけあり、それを全ての元データに対し使いまわす。 この状況をもう少し詳しく例を挙げて説明してください。 >整形用シートから個別シートにコピーしたいときに、飛び飛びの場所にでも一気にコピーできるのか。 同じセル位置なら、貼り付けるときに「形式を選択して貼り付け」で「空白セルを無視する」にすれば、必要データのみ貼り付けることができます。 いずれにしろ、セル位置などに一定の基準がない複雑な操作を行っているように見えますが、このようなルールがない場合は、当然のことですがマクロでも実行することはできません。 また、数式を多用しているため再計算に時間がかかるようですが、もしシートにデータを分割していたりした場合は1枚のシートでまとめたり、ピボットテーブルなどを利用する、あるいはマクロで対応するなど、シート構成を抜本的に見直したほうが良いような気がします。
補足
説明下手で申し訳ありません。 元データがcase1.txtからcase10.txtまであるとし、それぞれををシート1からシート10で整理したいです。 まずcase1をシート1に入力する前に、整形用シートにcase1のデータを貼り付けます。 貼り付けたことで、整形用シートにあらかじめ書いている計算が行われ、case1を整形したデータが整形用シートの2,4,6行目に現れます。 その2,4,6行目の値をシート1の1,5,10行目に入力したいのです。 そしてcase2に移り、また先ほどと同じ整形用シートにcase2のデータを貼り付けると、整形したデータが整形用シートの2,4,6行目に現れます。 この時点でcase1の時のデータがcase2のデータに上書きされているため、リンク貼り付けだとシート1のデータもcase2のデータに変わってしまいます。 シート1~10ではセルの結合や分割を多用しているため「空白セルを無視する」を上手く使えないのですが、シートの形式を作りなおしてこれが使えるようにするのがいいかもしれません。
- MackyNo1
- ベストアンサー率53% (1521/2850)
コピー元のシート1の2、4、6行目と貼り付け先のシート2の1、5、10行目が一定の規則で配置されていれば数式で入力することも可能ですが、例示のデータではシート2の方が一定間隔ではないため、マクロを含むどのような方法でも1つ1つセルに数式あるいはコピー貼り付けする操作が必要です。 どのような目的で、そのようなコピー貼り付けがしたいのかわからないのですが、単純にシート2のそれぞれのセルにリンク数式を入力しておけばよいと思うのですが・・・ もし、単純なリンク貼り付けでは不都合がある場合は、目的を含めてもう少し具体的にご希望の操作を説明してください。
補足
ご回答ありがとうございます。 元データがシート2でまとめたい形式と違った形で出力されています。 そのため形を整える用のシートを作り、そこで元データの形を整えてからシート2に貼り付けています。 ここは元データファイルを貼り付けるだけで行えるようにしています。関数を多用しているせいか重いです。 形を整えるのをシート2ですれば済む話ですが、元データが何種類もありシート2に相当するシートを大量に作成するためシート2を持つbookは少しでも軽くしたいと考えています。 また、形を整える用シートには何度も様々な元データを当てはめるので、コピー元の値はすぐに変わってしまうのでご提案いただいたリンクも使えないかと思います。 元データが複数あり、それらを個別のシートで希望の形式でまとめたい。 希望の形式にするための整形用シートは1つだけあり、それを全ての元データに対し使いまわす。 整形用シートから個別シートにコピーしたいときに、飛び飛びの場所にでも一気にコピーできるのか。 このような状況です。
お礼
何度もご回答ありがとうございました。 やはり、簡単な関数ではできないようですね。 マクロを使ったりして、作りなおしてみたいと思います。