こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル 数式のコピー・貼付について

エクセルの数式のコピー・貼付について教えてください。

シート1にデータが1000行くらい入っているとします。

   A   B  
1 100  5
2 200  3
3 350  9
:  :   :
:  :   :

シート2のセルA1、A2に =A1*B1
シート2のセルA3、A4に =A2*B2
シート2のセルA5、A6に =A3*B3

と、2行ずつ数式を入れたいのですが、
普通にコピー貼付をするとセル番地が自動的に
増えていってしまいます。
2行ずつ、同じセル番地の数式を入れる方法がありますでしょうか。
どうぞよろしくお願いいたします。

投稿日時 - 2009-09-26 00:46:43

QNo.5319167

すぐに回答ほしいです

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

普通にシート2に数式を入力(シート1のシート名がつくはず)
=シート1!A1*シート1!B1
=シート1!A2*シート1!B2
=シート1!A3*シート1!B3



上記数式入力セル範囲を選択
「編集」メニューの「置換」で
=

#
に「すべて置換」
セル範囲が選択状態のまま
Ctrl+C でコピー
Ctrl+↓、続けて ↓ 、で数式セル最下行の1行下に移動
Ctrl+V、で貼り付け
数式セルの列を「昇順」で「並べ替え」
数式セル範囲を選択
「編集」メニューの「置換」で
#

=
に「すべて置換」

投稿日時 - 2009-09-26 07:46:37

お礼

ご回答ありがとうございます。
この方法だと、シート2の数式を見たら
シート1のどのセルを参照しているか
わかりやすいため、この方法を利用させていただきます。
仕事で使うため誰が見てもわかるほうが便利なので
助かりました。
ありがとうございました。

投稿日時 - 2009-09-26 14:28:29

ANo.5

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

Sheet2!A1: =OFFSET(Sheet1!$A$1,(ROW(A1)-1)/2,0)*OFFSET(Sheet1!$B$1,(ROW(B1)-1)/2,0)

投稿日時 - 2009-09-26 02:13:17

お礼

ご回答ありがとうございます。
この数式で出来ました。
ありがとうございました。

投稿日時 - 2009-09-26 14:25:26

ANo.3

#2です。
マクロを使えば、シート2に入れる数式は、
=Sheet1!A1*Sheet1!B1
のようにすっきりいけそうです。
たぶんこれが一番求めていらっしゃる形かと思います。

標準モジュール。

Sub Sushiki()
Dim r As Integer
Dim i As Integer
Dim j As Integer
Dim MyRow As Integer
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Set Ws1 = Worksheets("Sheet1")
Set Ws2 = Worksheets("Sheet2")

MyRow = Ws1.Cells(Rows.Count, 1).End(xlUp).Row
j = 1

For r = 1 To MyRow * 2
i = Application.WorksheetFunction.RoundUp(r / 2, 0)
Ws2.Cells(j, 1).Formula = "=Sheet1!A" & i & "*Sheet1!B" & i
j = j + 1
Next r
Set Ws1 = Nothing
Set Ws2 = Nothing
End Sub

投稿日時 - 2009-09-26 02:01:12

お礼

ご回答ありがとうございます。
今回はコピー貼付でやりたかったのですが
とても参考になりました。
(仕事で使う表なので誰もがわかるように
しておかないと後々大変なのです。)

投稿日時 - 2009-09-26 14:24:37

ANo.2

ご希望の形と違うかもしれません。
でも計算結果はお求めのものが出ると思います。

■方法1
・Sheet2 の A1セルに
=OFFSET(Sheet1!$A$1,ROUNDUP(ROW()/2,0)-1,0,1,1)*OFFSET(Sheet1!$B$1,ROUNDUP(ROW()/2,0)-1,0,1,1)

と入れて、下に引っ張る。シート1のデータが1000行あるなら、シート2は2000行まで。

■方法2
・Sheet2 の A1セルに
=INDIRECT("Sheet1!a"&ROUNDUP(ROW()/2,0))*INDIRECT("Sheet1!b"&ROUNDUP(ROW()/2,0))

と入れて、下に引っ張る。同様に2000行まで。

投稿日時 - 2009-09-26 01:28:47

お礼

ご回答ありがとうございます。
方法1、2ともに出来ました。
ありがとうございました。

投稿日時 - 2009-09-26 14:21:48

ANo.1

こんばんは

シート2のセルA1、A2に =A1*B1

と、2行ずつ数式を入れてから、

A1、A2を複数選択して

普通通りに、セルの右下十字マークを、下え引張ってください。(コピー)

いかがでしょうか?

見当外れの答えなら、聞き流してくださいませ。

投稿日時 - 2009-09-26 00:57:02

お礼

ご回答ありがとうございます。
この方法でコピーすると、A3、A4には
シート1の =A3*B3 が出てしまい出来ませんでした。

投稿日時 - 2009-09-26 14:19:46

あなたにオススメの質問