• ベストアンサー

excelにて数式の列のズレ方を任意でセルコピーするには?

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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を参照することになります。 詳しくは関数のヘルプもみてください

guchi_yama
質問者

お礼

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

guchi_yama
質問者

補足

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

その他の回答 (1)

  • hurry5me
  • ベストアンサー率30% (74/242)
回答No.1

絶対ずれさせたくないところには$をつけます。 A1→$A$1とか$A1のように。 それとctrl+Hで”置き換え”をうまく使えばいかがでしょう。

guchi_yama
質問者

お礼

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

関連するQ&A