このページで学べること|絶対参照と相対参照の違い
これまでの記事では、SUM関数やSUMIF関数、IF関数など、いろいろな関数と出会ってきました。
今回は少し趣を変えて、関数そのものではなく、式をオートフィルしたときに参照がズレる問題と、その解決策である「絶対参照」について学びます。

この物語の案内役MISATOです。今回はコラム回ということで、スプレッドシートに詳しいKOYUKIさんにも来ていただきました。

はじめまして、KOYUKIです。関数たちの仕事ぶりを見ながら、スプレッドシートの仕組みについて一緒に紐解いていきましょう。

これまでの記事で、オートフィル―セルの右下にある小さな十字マーク(フィルハンドル)をドラッグして式をコピーする操作をしてきましたよね。あのとき、「あれ? なんか数字がおかしいぞ?」と思ったことはありませんか? 今日は、その”あるある”の正体を突き止めます。
あれ、オートフィルしたら値がおかしい……?

市役所のほうを覗いてみると、SUMさんが部署ごとの経費集計をしているようです。


各部署の4月〜6月の経費を合計して、共通経費のG2を足せばいいんだな。E2の結果はバッチリだ。よし、このままオートフィルで下に引っ張れば全部署分いけるはず……


あれ?正しく反映されていないぞ……E5の式は「=SUM(B5:D5)+G5」になっている。G2を足していたはずなのに、G5にズレてる! SUM(B5:D5)のほうは正しいのに……。
なぜズレるの? ―「相対参照」のしくみ

あらら。SUM関数さん、絶対参照を使うことに気付いていないようです。

そうね。ではまずは絶対参照のお話の前に「相対参照」について学びましょうか。

相対参照……ですか?

えぇ。「相対」というのは、「自分の位置から見た位置」という意味。
たとえばE2に「=SUM(B2:D2)+G2」と書いたとき、スプレッドシートは内部的にこう覚えています。「左の3つ分のセルをSUM + 右に2つ隣のセル」。
だからオートフィルで1行下にコピーすると、すべての参照が1行ずつ下にズレていきます。

E2=SUM(B2:D2)+G2
E2の左3つ分のセルを合計 + 右に2つ隣のセル

入力したE2のセルからみてSUM(B2:D2)という相対的な位置関係を元にすると、E5セルからみたら当然SUM(B5:D5)になりますよね。

そうね。でも、共通経費のG2まで一緒にズレてしまうのが困りものよね。
そんな時に活躍するのが「絶対参照」
動かしたくないセルを固定する ―「絶対参照」と$マーク

たとえば、さっきのSUMさんの式の「G2」を「$G$2」に変えるだけでOK。
参照先を動かしたくない(絶対参照にしたい)時には$マークを使います。

$マークはキーボードの4の位置にありますよね。

E2に入力した式: =SUM(B2:D2)+$G$2

イメージとしてはね、セロハンテープでセル参照をピタッと留める感じかしらね。
G2セルを固定しておけば、オートフィルでどれだけ下に引っ張っても動かないのよ。


$GでG列を固定、$2で2行目を固定。つまり$G$2は上下左右に動かないんですね!

そういうこと。
一方、SUM(B2:D2)のほうはテープを貼らずにスライドさせたいので、今回はそのままで!

E5に入力された式: =SUM(B5:D5)+$G$2

おお! オートフィルを使っても全部ちゃんとG2が固定されているぞ。これで正しく合計できた!
$マークの貼り方パターン ― 列だけ? 行だけ? 両方?

ここで、$マークの貼り方パターンを整理しておきましょう。
実は、セル参照には4つのパターンがあるんです。
| 書き方 | 名前 | 動き |
|---|---|---|
| G2 | 相対参照 | 行も列もオートフィルで動く |
| $G$2 | 絶対参照 | どちらも動かない |
| $G2 | 複合参照(列固定) | 行は動く、列は動かない |
| G$2 | 複合参照(行固定) | 行は動かない、列は動く |

列を固定したいのか、行を固定したいのか、使いこなせると本当に便利ですよね!

そうね。さっきのSUMさんの場合は$G$2で列も行もガッチリ固定。でも他の業務では列だけ、あるいは行だけを固定した方がいいケースもありますからね。
ショートカットで一発入力 ― F4キー

ちなみに、$マークを手で打つのは少し面倒よね。F4キーを押すと、カーソル位置のセル参照に$マークを自動でつけてくれるのは知ってる?


F4キーですか!それは初耳です!

F4は他にも機能を持つけど、今回のように数式で使う時には押すたびに$マークが切り替わるのでとっても便利なので覚えておいてね。
- 1回押す → $H$1(絶対参照)
- 2回押す → H$1(行だけ固定)
- 3回押す → $H1(列だけ固定)
- 4回押す → H1(相対参照に戻る)
⚠️ 実はあのとき、絶対参照を使えばもっと便利だった

KOYUKIさん、他にも絶対参照の活用方法を知りたいです!

もちろん。実はこれまでの記事で関数たちがやっていた仕事にも、絶対参照を使えばもっと便利になる場面があったのでご紹介しましょうね!

ちょっと聞こえちゃったんだけど。あの時、もしかしてこの絶対参照を使えばもっと楽に計算できたということなのかしら?

せっかくなのであの時の表をみてみましょうか。

男性の納税額を集計した式よ。


あのとき、もし範囲のC2:C6を$C$2:$C$6、E2:E6を$E$2:$E$6としていたら、女性の納税額(I2)を算出することも簡単だったと思うわ。

H2に入っている式を横に向かってオートフィルすることができますからね!


「女性」という条件は一緒に右にずれていいから、$マークはつけない、ということね?

そうです!
参照元の表は固定しておきたいのでそちらは絶対参照をつける。
一方で、動いていいものは$マークはつけない。それで合ってますよ!

ちなみに、「絶対参照」はよくピンや釘打ちで説明されることがあります。$C$2はC2セルにピンを、$C$6はC6セルにピンを打った、とイメージするのもいいですね。

《実践編》 税込価格表をオートフィルで完成させよう

では、ここまで学んだことを実践で確認しましょう。
お題: 物品購入リストから「税込価格を計算する」表を完成させましょう

よし!俺が挑戦するぞ!
F2に入れる計算式は…っと

=E2+E2*$H$2

税率のセルは動かしたくないから絶対参照をつけておくぞ!
それでF列のほかのセルはオートフィルを使っても大丈夫なはず、だな。


バッチリです!F6のセルには、=E6+E6*$H$2が入力されています!


最後に、F7に経費合計を出すSUM関数を入れて終わり、っと。
まとめ

今回のコラムでは、オートフィルで式を引っ張ったときにセル参照がズレる―そのよくある「あれ?」の正体が「相対参照」であること、そして$マークで参照をセロハンテープのようにピタッと固定する「絶対参照」の使い方を学びました。

ポイントをおさらいすると、何も指定しなければ参照はオートフィルの方向に自動でズレる(相対参照)。ズレてほしくないセルには $マークで止める(絶対参照)。そしてF4キーを使えば$マークの切り替えは一瞬です。

KOYUKIさん、ありがとうございました!
次回は再びエピソード本編に戻ります。お楽しみに!!

