dポイントプレゼントキャンペーン実施中!

Excelにて、A1からA10までの10個のセルに入力されている
全ての関数式を1列ズラした形でコピーしたいのですが、
(例えば =AA1*AA2  →  =AB1*AB2 みたいな)
コピーする位置は2つズレていてC列にコピーしたいのですが、
そこにコピーをすると
 =AA1*AA2  →  AC1*AC2
となってしまいます。
これをコピーして、
例えのように1つだけしかズレないようにするには
どうすればよいのでしょうか?
もちろんコピーするときは、A1:A10までをドラッグして
一度にコピーしたい事が前提です。
良い方法があればお教え下さい。お願いします。

A 回答 (2件)

A1に


=AA1*AA2
という式が入力され、これをC列にコピーしたら
=AB1*AB2
さらにE列にコピーしたら
=AC1*AC2
にしたいのですか

A1の式は
=OFFSET($A$1,0,26+(COLUMN()-1)/2)*OFFSET($A$2,0,26+(COLUMN()-1)/2)
にすればよいです

OFFSET関数は基準セルから何行、何列離れたセルを参照する関数です。OFFSET(基準セルアドレス,行数のズレ,列数のズレ)で指定します。
 OFFSET($A$1,0,26+(COLUMN()-1)/2)
だと、A列に入力するとCOLUMN()=1、C列に入力するとCOLUMN()=3になりますから、それぞれAA1とAB1を参照することになります。
詳しくは関数のヘルプもみてください

この回答への補足

なるほどぉ~!とりあえず、出来ました。
ところで、式の中にある「26+(COLUMN()-1)/2」
の解説をして頂けるとありがたいのですが...
26はA~Zまで26列だから次のAA1を出す為の数字ですよね;
その後ろのCOLUMN()もヘルプで見て理解したのですが、
それをつなぎ合わせて2で割って足して...ってところが
いまいち分からないのですが、
もし宜しければご説明願いえませんでしょうか?

補足日時:2007/08/21 17:30
    • good
    • 5
この回答へのお礼

自分でやってみて分かりました!
入力するセルたとえば5列目だとすると26+5-1=30
これを2で割ると15
次の列7列目だと26+7-1=32
これを2で割ると16
と1列ずつズレる答えが出るんですね!
不思議ですねぇ;;
でも分かりました。
どうもありがとうございました。

お礼日時:2007/08/21 18:42

絶対ずれさせたくないところには$をつけます。


A1→$A$1とか$A1のように。

それとctrl+Hで”置き換え”をうまく使えばいかがでしょう。
    • good
    • 0
この回答へのお礼

置き換えかぁ!なるほどです。
結構使えるテクニックですね!参考になりました。
また何かありましたら宜しくお願い致します。

お礼日時:2007/08/21 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!