• ベストアンサー

EXCEL セルの自動計算

例えば, D26で「=D$17*D$10」の計算を行って D46で「=D$17*E$10」の計算を行いたいのです. D26からD46へ $D$10→$E$10とDからEへと右に1つ移動しただけなんです.それを自動で書き換えは出来ますか?今,一個一個計算式を選択しているのですが自動な方法があれば教えてください. 例えば,「=D$17*(E+1)$10」という風にEから1つ移動する...て感じに式が表現できませんか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 いったい、どのぐらいの数にかもにもよりますね。 私の方法は、実務的にする方法です。 空いている列の26行目に =MOD(ROW(A1),20)=1  それを必要なだけフィルダウン・コピー オートフィルタで、TRUE だけ出す。 D26で「=D$17*D$10」 D46で「=D$17*E$10」 の二つを書いて、D46で、フィルダウンで必要なだけドラッグしてコピー Ctrl + Shitf + @ で、数式を出しておいて、 A1 →R1C1にして、テンキーで、 =R17C*R10C[2]  =R17C*R10C[3] と括弧の数字を、F2と矢印キーで移動して、書き換えます。 後は、A1 方式に戻せば出来上がりです。100個でも、そんなに時間が掛からないと思います。数式で考えるよりも早いです。 たぶん、お気に召さないとは思いますが。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

質問の気持ちも判るが、 エクセルの式の複写は「連続セル」に対して有効なとき、便利なんです。 本質問では、 (1)D26->D46->D66・・のように飛び飛びに複写するということは、そのセルを、人間が注意を持って指定しなければならない。 (2)例えばD27-D56の間のセルの値や式を「壊してはならない」。 ということで有ろうから、余りメリットはない。 あえてやるなら、規則性のある場合は、ROW()関数やCOLUMN()関数で OFFSET関数やINDEX関数の、行列を表すことができれば、可能です。 考える時間のことも考えて無駄なような気がする。 $D$17は変わらないらしいから、$D$17かまたは縦方向の 複写なのでD$17。 26から46行が増えて、列が1列増やしたいので、 26のとき4 46のとき5 26のとき int(row()/20)+3 46のとき int(row()/20)+3 でよい。 これおINDEX関数で現すなら =D$17*INDEX($A$1:$G$1000,10,INT(ROW()/20+3)) $Gや$1000は適当に多めに指定。 ーーーーーーーーーーーー D10=11 E10=22 F10=33 D17=1 ーーーーー D26に =D$17*INDEX($A$1:$G$1000,10,INT(ROW()/20+3)) CTRL+C D46でCTRL+V D66でCTRL+V D26は11 D46は22 D66は33 になりました。

回答No.3

OFFSET関数を使います。 =$D$17*OFFSET($D$10,,(ROW(D26)-ROW($D$26))/20)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

次は、D66=D$17*F$10ってことですか?

OK_WEB_ID
質問者

補足

そうです.お願いします.

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

はじめまして ご質問の意味が理解できないので、うまく説明できませんが、 INDIRECT 関数 を使ってみてはいかがでしょうか? 10行毎に1繰り上がるなら、 =INT(ROW()/10) でできます。 もう少し具体的に例を挙げていただけると、解答しやすくなります。

OK_WEB_ID
質問者

補足

D26で「=D$17*D$10」の計算 D46で「=D$17*E$10」の計算 D66で「=D$17*F$10」の計算 D86で「=D$17*G$10」の計算 D106で「=D$17*H$10」の計算 です. お願いします.

関連するQ&A