- ベストアンサー
エクセルのシート間引用数式の行単位複写について
エクセルの行単位複写について質問です 同じブック内の別のシートからデータを引用しています。 単に引用するだけで演算は加えませんが、引数が空白の場合に表示が何も出ないように=IF関数を入れています。 そして難点は、引数のあるシートは1行単位、使用するシートは2行単位の表になっていることです。 引数のシートのデータ構成 A10 A11 A12 B11 B12 C11 C12 D11 D12 A20 A21 A22 B21 B22 C21 C22 D21 D22 ・ ・ ・ A500 A5001 A5002 B5001 B5002 C5001 C5002 D5001 D5002 使用するシートの様式 1行目 A10 A11 B11 C11 D11 2行目 結合 A12 B12 C12 D12 3行目 A20 A21 B21 C21 D21 4行目 結合 A22 B22 C22 D22 A10 A20 は上下セルを結合しています。 このような場合、左クリック+ドラッグで行単位のコピーを行うと、拾ってくるデータが飛び飛びになってしまします。 行数が多く、数式の引用セル位置の数値をいちいち手入力や置換処理で修正していると非常に手間がかかるので、一気に数式を入力する方法はないでしょうか。 よろしくご指導お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
引用元のシートが1行目からデータがあるとします 「使用するシート」のA1セルに次の式をコピー =OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),0) 「使用するシート」のB1セルに次の式をコピーし、B2にもコピー =OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),(COLUMN()-1)*2-ISODD(ROW())) 更にB1:B2をE列までコピーしてください。 最後に1行目と2行目をコピーして、下方向に行単位に貼り付けます。 もし引用元のデータ開始行が1行目でないときは「Sheet1!$A$1」の部分を「Sheet1!$A$5」のように実際のデータ開始行のA列のセルアドレスに変更します。
その他の回答 (2)
- suekun
- ベストアンサー率25% (369/1454)
あっごめんなさい。途中で送ってしまいました。 一行置きの複写って考えて良いでしょうか? 参照先 A1 A2 A3 A4 A5 コピー先 A1 A3 A5 A7 A9 という事でしたら先ほどの数式で可能になります。 ROW関数で相対参照の行数を2で割る事によりOFFSETの移動量を 調整します。 ただ、質問を理解してないのですが、どうも単純な法則で ないきがしますね。^^;
- suekun
- ベストアンサー率25% (369/1454)
=IF(OFFSET($A$1,INT(ROW(A1)/2),0)="","",OFFSET($A$1,INT(ROW(A1)/2),0))
お礼
素早いご回答ありがとうございます。 大変参考になりました。
お礼
ご回答ありがとうございました。 2行目に引用するA22,B22・・・の数式を「INT((ROW()-2)/2)」とアレンジすることで、次行以下へコピーできました。 2行単位のドラッグで、一気に10OO行のデータシートが出来上がりました。 お二人のアドバイスはパーフェクトです! 本当にありがとうございました。