• ベストアンサー

Excelでの計算

次のような計算は出来るのでしょうか。  | A | B | C | ---------------------- 1| a1 | b1 | c1| ---------------------- 2| a2 | b2 | c2| ---------------------- 3| a3 | b3 | c3| ----------------------  - - - - - - - ---------------------- n| an | bn | cn| というときに c1=a1+bn c2=a2+b_n-1 c3=a3+b_n-2 cn=an+b1 という値がCの列に出るような操作があれば教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

すみません、#2で訂正した式は間違えています。 =A1+OFFSET($B$11,1-ROWS($B$1:B1),0) の間違いでした。 >この式がどういうことをやっているのか OFFSET関数は、基準のセルからの相対的な位置のセルを求める関数です。なので、 OFFSET関数の部分で、 Akの時のBn-k+1を求めています。 OFFSET関数は、 OFFSET(基準,行数,列数[,高さ][,幅]) の様に指定します。高さと、幅は、基準と違う範囲を返す時のもので、[]は、省略できることを表します。例の場合は、省略されているので、基準のセルと同じ1個のセルを返すということです。 行数と列数は、基準のセルからの相対的な位置を表していて基準の位置を0,0としてプラスの時は、下右の位置を表しマイナスの時は、上左を表します。 例えば、B11の位置から、B1の位置を表すと OFFSET(B11,-10,0)になります。 ROWSは、この間の相対位置を求めるのに使っています。 ROWSは、 ROWS(セル範囲)の様に指定して、その間の行数を求める関数です。 ROWS($B$1:B1)の様にすることで、 $の付いていない、今着目しているセルとB1の間のセルの行数を数えます。 例えば、C11のセルでは、 ROWS($B$1:B11)になって、この値は、11になり、 基準の位置が0なので、 1-ROWS($B$1:B11) は、1-11で-10になります。 つまり、C11のセルの時にB1のセルの値を取り出します。 ROWSの替わりにROWを使うことができるのは、B1から始まっているからで、 ROWは指定したセル範囲の左上のセルの行番号を返します。(#1の場合はセルを範囲で指定している意味はありませんね<恥ずかし…) 1-ROW(B1:$B$11)つまり 1-ROW(B1)は、B1を基準とした行数を1から引いていることで、先に説明したのと同じB11からの相対位置になります。 ROWでなくROWSを使う意味は、ROWは、行の番号なので、 例えば、1行目に行を挿入した時にに、おかしくなるのを防ぐ意味があります。 色々恥ずかしい間違いをしてしまいました^^;

oog-oog
質問者

お礼

詳しい解説有難うございます。 これで、式の意味も、関数の使い方も分りました。

その他の回答 (3)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

例えばデータ数が11なら単純にROW関数だけの以下の式でOKです。 =A1+OFFSET($B$1,11-ROW(A1),0)

oog-oog
質問者

お礼

回答有難うございます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

すみません。 #1は、 =A1+OFFSET($B$11,1-ROWS(B1:$B$11),0) に訂正します。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

質問者の意図するところと違うかもしれませんが 例えば、B11がbnだとすると C1に =A1+OFFSET($B$11,1-ROW(B1:$B$11),0) として、下にコピーします。

oog-oog
質問者

お礼

早速の回答有難うございます。 なんか合っているみたいです。出来ればこの式がどういうことをやっているのか解説してもらえるとありがたいです。

関連するQ&A