【絶対参照って何?】オートフィルで値がズレる原因と$マークの使い方

コラム

このページで学べること|絶対参照と相対参照の違い

これまでの記事では、SUM関数やSUMIF関数、IF関数など、いろいろな関数と出会ってきました。

今回は少し趣を変えて、関数そのものではなく、式をオートフィルしたときに参照がズレる問題と、その解決策である「絶対参照」について学びます。

MISATO
MISATO

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

KOYUKI
KOYUKI

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

MISATO
MISATO

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

あれ、オートフィルしたら値がおかしい……?

MISATO
MISATO

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

SUM関数
SUM関数

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

SUM関数
SUM関数

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

なぜズレるの? ―「相対参照」のしくみ

MISATO
MISATO

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

KOYUKI
KOYUKI

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

MISATO
MISATO

相対参照……ですか?

KOYUKI
KOYUKI

えぇ。「相対」というのは、「自分の位置から見た位置」という意味。

たとえばE2に「=SUM(B2:D2)+G2」と書いたとき、スプレッドシートは内部的にこう覚えています。「左の3つ分のセルをSUM + 右に2つ隣のセル」。

だからオートフィルで1行下にコピーすると、すべての参照が1行ずつ下にズレていきます。

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

MISATO
MISATO

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

KOYUKI
KOYUKI

そうね。でも、共通経費のG2まで一緒にズレてしまうのが困りものよね。

そんな時に活躍するのが「絶対参照」

動かしたくないセルを固定する ―「絶対参照」と$マーク

KOYUKI
KOYUKI

たとえば、さっきのSUMさんの式の「G2」を「$G$2」に変えるだけでOK。

参照先を動かしたくない(絶対参照にしたい)時には$マークを使います。

MISATO
MISATO

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

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

KOYUKI
KOYUKI

イメージとしてはね、セロハンテープでセル参照をピタッと留める感じかしらね。

G2セルを固定しておけば、オートフィルでどれだけ下に引っ張っても動かないのよ。

MISATO
MISATO

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

KOYUKI
KOYUKI

そういうこと。

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

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

SUM関数
SUM関数

おお! オートフィルを使っても全部ちゃんとG2が固定されているぞ。これで正しく合計できた!

$マークの貼り方パターン ― 列だけ? 行だけ? 両方?

KOYUKI
KOYUKI

ここで、$マークの貼り方パターンを整理しておきましょう。

実は、セル参照には4つのパターンがあるんです。

書き方名前動き
G2相対参照行も列もオートフィルで動く
$G$2絶対参照どちらも動かない
$G2複合参照(列固定)行は動く、列は動かない
G$2複合参照(行固定)行は動かない、列は動く
MISATO
MISATO

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

KOYUKI
KOYUKI

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


ショートカットで一発入力 ― F4キー

KOYUKI
KOYUKI

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

MISATO
MISATO

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

KOYUKI
KOYUKI

F4は他にも機能を持つけど、今回のように数式で使う時には押すたびに$マークが切り替わるのでとっても便利なので覚えておいてね。

  • 1回押す → $H$1(絶対参照)
  • 2回押す → H$1(行だけ固定)
  • 3回押す → $H1(列だけ固定)
  • 4回押す → H1(相対参照に戻る)

⚠️ 実はあのとき、絶対参照を使えばもっと便利だった

MISATO
MISATO

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

KOYUKI
KOYUKI

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

IF関数
IF関数

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

MISATO
MISATO

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

SUMIF関数
SUMIF関数

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

KOYUKI
KOYUKI

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

MISATO
MISATO

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

SUMIF関数
SUMIF関数

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

MISATO
MISATO

そうです!

参照元の表は固定しておきたいのでそちらは絶対参照をつける。

一方で、動いていいものは$マークはつけない。それで合ってますよ!

KOYUKI
KOYUKI

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


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

MISATO
MISATO

では、ここまで学んだことを実践で確認しましょう。

お題: 物品購入リストから「税込価格を計算する」表を完成させましょう

SUM関数
SUM関数

よし!俺が挑戦するぞ!

F2に入れる計算式は…っと

=E2+E2*$H$2

SUM関数
SUM関数

税率のセルは動かしたくないから絶対参照をつけておくぞ!

それでF列のほかのセルはオートフィルを使っても大丈夫なはず、だな。

MISATO
MISATO

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

SUM関数
SUM関数

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


まとめ

MISATO
MISATO

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

KOYUKI
KOYUKI

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

MISATO
MISATO

KOYUKIさん、ありがとうございました!

次回は再びエピソード本編に戻ります。お楽しみに!!

タイトルとURLをコピーしました