ホーム 前へ 次へ
絶対番地と相対式
それでは問題です。

魚つりをしました。目標は70匹です。
よし君、みゆきさん、ひでぼんの3人で釣りました。
成績はそれぞれ、60匹、75匹、90匹でした。
目標に対して何匹多くまたは少なかったでしょうか?
項目の文字も入力しましょう。

エクセルの場合です。

表1
F列の式
目標 実績 成果
よし君 70 60 −10 =E3−D3
みゆきさん 70 75 =E4−D4
ひでぼん 70 90 20 =E5−D5

でしょうか。
目標と実績と式のEとDを入れ替えてもかまいません。

表らしくなりました。

でもちょっと待ってください。
D列です。
3人ぐらいのデータだったら大したことは有りませんが、これが何十人だったら?

そこで作り替えたのが次の式です。

表2
E列の式
目標 70
実績 成果
よし君 60 −10 =D3−$D$1
みゆきさん 75 =D4−$D$1
ひでぼん 90 20 =D5−$D$1

???ちょっと変わった式になりました。

表1の場合は、これくらいの人数ならこの表でも十分でしょう。
ところが何十人だったらどうでしょう?
D列に延々と目標の70が入ります。
さらに目標が変わったら全て訂正しなくてはなりません。

表3
E列の式
目標 70
実績 成果
よし君 60 −10 =D3−D1
みゆきさん 75 =D4−D1
ひでぼん 90 20 =D5−D1

上図のように、E列はセルごとに式を書き込めばかまわないのですが、3人ならともかく、何十人もとなると大変です。
そこで1つだけ式を作成し、後はコピーをしたいのです。

ところが=D3−D1を下の方にコピーしていくと

E列の式
目標 70
実績 成果
よし君 60 −10 =D3−D1
みゆきさん 75 75 =D4−D2
ひでぼん 90 30 =D5−D3

前講座で解説したように「=D3−D1」とは、この式のあるセルから見て、「左に2番目の列で、同じ行にあるセルの数値」−「左に2番目の列で、上に2行目のセルの数値」です。

ですから、この式をコピーすると「相対的位置関係は変化しません」から、E4やE5はこのような式になるのです。

困りましたね。
そこでE3に「$D$1」と書き込みます。
$(ダラスマーク=数字の4の上に有ります)は「絶対マーク」または「アンカー」と呼んでいます。

「$D$1」は「式のあるセルとの相対位置関係」ではなく、「D列1行目のセル」と指定するのです。

つまり
=D3−$D$1は、「式のあるセルの左2番目のセルの値」−「D列1行目のセルの値」となります。

このように$マークを付けたものを「絶対番地」と呼んでいます。

例えば、$A$1なら「A列の1行目のセル」ですね。

こうしておくと、表2のように、E3だけ式を作り、その式を複写し、正しい計算をすることができます。

この関係はぜひ覚えておいてください。

さらに、この絶対番地の指定方法には応用が有ります。
$D1とか、D$1といった使い方です。
難問かな?
それでは下の例を見てください。

E列の式 F列の式
最大目標と最低目標 70 60
実績 最大目標
に対し
最低目標
に対して
よし君 60 −10 =$D3−D$1 =$D3−E$1
みゆきさん 75 15 =$D4−D$1 =$D4−E$1
ひでぼん 90 20 30 =$D5−D$1 =$D5−E$1

この中で、作成した式(キーボードで作ったもの)はE3のセル=$D3−D$1だけです。
後はコピーを使ったものです。

$D3は、「D列は指定する、3は式も3行目にあるから、同じ行のところセル(相対関係)」になりますね。
D$1は、「D列は相対的な位置関係、つまり式から見て左に2つめ、$1だから1行目は指定をしておく」、です。

この式を下の方にコピーすると、$D3は、列だけは指定しているので列番号に変化はないけれど、行は変わります。
D$1は下方向にコピーしても、行番号は指定されているので変化しません。

式が右にコピーされると、=$D3−E$1となった理由も同じです。
横に移動しても$D3は、列が指定されているので変化無し、行は横方向に移動しても相対位置関係は変化しませんからね。
D$1では、DはEになりますね。

まるでマジックのような(^○^)
6つもの式を作成するのに、たった1個の式を作って後はコピーだけで・・・
この式の仕組みを正しく理解しておくと、何百、何千という式が、「たった1つ式を作って、後はコピーだけ」で済むことがあるのです。

影の声、「だったら表2で、$D$1はD$1でも良かったのでは?」
ピンポーン、正解です。

ついでですが、この下に何百と式を作るのなら、$マークが1つで済めば1つにしときましょう。
その分メモリーが少なくて済みます。
省エネってところです。

まとめておきましょう

式は、横方向にコピーすると列番号が変化する。
変化させたくないときは、列番号の前に$を付ける。

縦方向にコピーすると行番号が変化する。
変化させたくないときは、行番号の前に$を付ける。

どちらも変化させたくないときは、両方に$を付ける。
ホーム 前へ 次へ