見出し画像

[EXCEL] 世界いちわかりやすい?「相対参照・絶対参照」解説! 初級者つまづきポイント攻略 数式コピーの前にこれをマスターせよ!

目次 > 数式

【まとめ】
相対参照・絶対参照を使いこなすことで、数式のコピーが楽になる。

・相対参照:数式の中にあるセル(参照元セル)の位置関係が保たれたままコピーされる。列名(英字)又は行番号(数字)に「$」が付かない。
・絶対参照:参照元セルの番地が固定されたままコピーされる。列名または行番号に「$」が付く。

・相対参照と絶対参照を切り替える方法
セル番地を入力(選択)後にF4キーを押すと、相対参照と絶対参照が、順次、切り替わる(「$」の付き方が、順次、変わる)。
=A2 ⇒ =$A$2 ⇒ =A$2  ⇒ =A$2 ⇒ =A2 ⇒ 繰り返し
*通常、数式を手入力すると相対参照(「$」なし)になる。

シンプル版(コピーで参照セルがズレる)はこちらをどうぞ。


【説明】
Excel初心者が理解しづらいのが「相対参照」「絶対参照」です。
逆に「相対参照・絶対参照」を使いこなせれば、集計表の作成が一気に楽になります。
一つ一つのセルに数式を手入力しなくても、数式をコピーするだけですみます(数式パターンが同じ場合)。
効率的な集計を行うには「必須」(というより「基本」)の知識ですが、意外と理解していない人が多いようです。


この記事では、九九表を使って「数式の元となるセル(参照セル)」がコピーでどう変わるか(動くか・動かないか)を説明します。

1 なぜ実務では「相対参照・絶対参照」の理解が必須なのか?

エクセルでは、セルに数式を入れると自動で計算します。
数式を入れるセルが複数あっても、数式を1つ作って、後はその数式をコピーすることで他のセルにも同じパターンの数式が入ります。
個々のセルに手作業で数式を入れてはいけません(非効率&ミス発生)。

Ctrl+D で上のセルをコピーすると・・・
下のセルにも同じパターンの数式が入る

この時、数式の中にあるセル(参照元セル)が「動く(変わる)場合」と「動かない(変わらない)場合」があります(通常は変わる)。
動く(変る)場合を「相対参照」、動かない(変わらない)場合を「絶対参照」といいます。
数式によって「動く(変わる)」のがいい場合とよくない場合があります。
これを適切に設定することが重要です。

2 まず結論:参照の違いはこれだけ

・相対参照(例:A1)
 列と行の両方に「$」なし ⇒ コピーで参照先のセル番地が「動く」
・絶対参照(例:$A$1)
 列と行の両方に「$」あり⇒ セル番地は「動かない」
・行だけ固定又は列だけ固定(例:A$1 or $A1)
 列と行のどちらかに「$」あり ⇒ 「$」が付いている方は動かない
(混合参照・複合参照ともいう)

「$」とは?

「$」は、セル番地を固定する記号。「ロックする」といえます。
なぜ「$」(ドルマーク)か? 単なる「約束」です。
鍵穴みたいだから「ロック」(動かない)、あるいは、ドルマーク(お金)  ⇒ 金庫 ⇒ ロック と覚えてもいいでしょう。
「$」はF4キー押下で付きます(詳細後述)。

「$」の付き方は4パターンだけ

難しく見えるのは 「動く」「動かない」が混ざって混乱するから 。
しかし、数式内のセル番地は「動く」か「動かない」か の二択です。
難しくありません。
セル番地は「列名」と「行番号」から出来ているので、それぞれが「動く」「動かない」となるため、実際は、
「動くor動かない」の二択 ×「列・行」の2つ = 4パターン です。

以下、九九表で説明します。

答えが多くて目が泳ぐので、以下では最小限のみ表示します。
*数式が入っているセルは自動で水色表示にしています。
(条件付き書式で=ISNUMBER(A1)により「塗りつぶし」を水色に設定)

3×2の答え「6」を表示


3 相対参照:コピーでセル番地が動く

九九表で 3×2のセルに数式を入力すると以下になります。
E6セル(3×2)の数式 =C6*E3 (答え:6)

「参照元のトレース」(Alt⇒M⇒P)で、数式の元なるセルを表示しています。
(Alt⇒A⇒Aで矢印は消える)

これを、5×4のセルにコピーすると(Ctrl+C⇒Ctrl+V)・・・

「0」と出ますが、これは間違いです。
理由は、数式内のセル番地が動いてしまっているから。
元の数式の =C6*E3 が =D8*F5 と、縦も横も同じセル数(2セル分)、動いています。
これでは正しい計算が出来ません。
上図では参照元セルは空欄ですが、ここに数値が入っていれば、計算ミスが生じます。

4 絶対参照:コピーでセル番地は動かない

直すべき箇所は以下です。
元の数式 =C6*E3 (=3×2を出すE6セルの数式)
直し方
・C6の場合:列(C)は動かさないが、行(6)は動かす。
 C6⇒$C6 :「C」にだけ「$」を付けてロックする。
・E3の場合:列(E)は動かすが、行(3)は動かさない。
 E3 ⇒ E$3 :「3」にだけ「$」を付けてロックする。

従って、数式はこうなります。
元の数式 E6セル =$C6*E$3 =3×2⇒ 結果:6
コピー後 G8セル =$C8*G$3 =5×4⇒ 結果:20

元の数式をコピーすると、「$」が付いている列・行は同じままで、「$」が付いていない列・行は動いていることが分かります。

この数式を全部のセルにコピーすると・・・
( =$C6*E$3 でも =$C8*G$3 のどちらでも構いません。)

一部、「参照元のトレース」を表示しています。

全てのセルに正しい答えが入ります。
「参照元のトレース」を見ると、全てのセルが
「掛けられる数値」の「列」は同じでも、「行」は動いている、
「掛ける数値」の「列」は動いていても、「行」は同じ、と分かります。

実際は 左上の =1×1に以下の数式を入れてコピーします。

このように、コピー前の数式のセル番地を「相対参照」「絶対参照」で整えておけば、一つ一つのセルに手入力で数式を入れる必要はありません。
数式を1つ作成 ⇒ コピー ⇒ 全セルの数式が完成、
これがエクセルの妙味。というか、基本です。

ただし、「相対参照」「絶対参照」を間違えると、コピー後の数式も間違ったものになります。

数式内のセル番地全てを絶対参照にしてしまった場合

もし、=1×1のセルに以下の数式を入れたら、どうなるでしょう?

=$C$4*$D$3

掛けられる数の列・行も、掛ける数の列・行も全て「$」付きの絶対参照です。つまり、数式の中のセルは、コピーしても動きません。

この数式自体は正しいのですが、他のセルにコピーすると・・・

一部セルに「参照元のトレース」を表示

数式内のセルが動かないため、全てのセルが同じセルを参照し、全ての答えが「1」となってしまいます。
上の表なら間違いにすぐ気づきます。
でも、実務ではこんな単純な表はありません。
参照するセルが間違っていたら、計算ミスになります。

「計算ミス」を防ぐ方法

①「相対参照」と「絶対参照」を間違えない(慌てないで修正する)。
② いきなり全セルにコピーしないで、列や行をずらした1~2セルにコピーしてみる。
③ 数式をコピーしたら「参照元のトレース」(Alt ⇒ M ⇒ P)で確認する。
*Alt ⇒ M ⇒ A ⇒ A で矢印は消える。
④ 参照間違いがあれば元のセルを修正する。

4「$」はどう付ける? F4を押すだけ

「$」を付けるとコピーしても列や行が動かない「絶対参照」になります。
この「$」を付ける方法(消す方法)は、主に以下の2通りがあります。

(1)セル番地を入力しながら「$」を付ける場合
① 数式に セル番地 を入力
② F4キー押下 ⇒「$」が付く。
③ セル番地を入れるたびにF4キーを押す。

セル番地を入れた後、F4キーを押すと列にも行にも「$」が付く


(2)既にセルに入っている数式のセル番地に「$」を付ける場合
① 数式の入っているセルをダブルクリック(またはセル選択後、F2押下)
② 数式内の修正したいセル番地を選択(マウスまたは矢印キー)
*列と行の間でも、列の前でも、行の後ろでも構いません。
③ F4キー押下でセル番地に「$」が付く
*セル番地ごとに行う。


F4キーを押す度に「$」の付き方は変わる

「$」の付き方は、F4キーを押す度に変わります。
上図では =B2 とB2セルを参照しています。
この場合、
① F4キー押下 ⇒ =B2  が =$B$2 になる(列と行の両方に「$」が付く)⇒ 両方ロックされる
② 再度F4キー押下 ⇒ =B$2 と行だけに「$」が付く ⇒「行」だけがロックされる
③ 再度F4キー押下 ⇒  =$B2 と列だけに「$」が付く ⇒ 「列」だけがロックされる
④ 再度F4キー押下 ⇒ =B2 と行にも列にも「$」が付かない ⇒「列」も「行」もロックされない(動く)
⑤ 再度F4キー押下 ⇒ ①になり、以降繰り返し

行きすぎたら、F4を押していけばいいのです。
=B2  ⇒ =$B$2 ⇒ =B$2 ⇒  =$B2 ⇒  =B2  ⇒ 繰り返し

F4キーを押す度に「$」の付き方が変わります

両方付かない ⇒ 両方に付く⇒ 行だけ ⇒ 列だけ ⇒ 両方付かない、この繰り返し。

九九表を3分で作る

「相対参照・絶対参照」が理解できれば、以下の記事の九九表は3分で作成できます。ぜひ、試してみてください。

九九の合計は? 九九表が3分で作れればエクセル初級卒業?

この九九表を週に1回でも作ってみると、エクセル操作が上達・維持できるはずです。

実務での例

実務では数式の中の一部のセルだけロック(固定)する場合があります。

例:生年月日と基準日から満年齢を出す場合


「あ」の満年齢の式は
=DATEDIF(C7-1,$C$2,"Y")
です。
この数式は
=(生年月日-1,基準日,"Y")で、基準日の満年齢を出します
「あ」「い」「う」それぞれ生年月日は違いますが、基準日は同じ。
従って、基準日のセル「C2」はコピーしても動かないよう「$C$2」と「$」を付けてロックしてからコピーします。
「$」は、
①数式を入れながら、あるいは、②一旦数式を入れてから、でも、どちらでも構いません。
実務では②の方が多いでしょう(数式を入れながら「$」の付け方を考えるのは混乱しがちのため)。

従って、
数式を作る ⇒「参照元のトレース」を表示 ⇒ ロックするセルを確認 ⇒ 該当のセル番地にF4キーで「$」を付ける、
という手順がやりやすいでしょう。

*上の数式では、満年齢を出すため生年月日から1を引いています。
この理由は以下を参照願います。
DATEDIF関数の説明は「正確でない」ものが多いので注意が必要です。

[Excel]誕生日の前日に年を取るのはなんで?、と思った方へ(WEB記事やエクセル本は不正確なものが多いので注意)


以上、長くなってしまいましたが、是非理解して使いこなしてください。
集計作業が飛躍的に速く、正確になりますから。
というか、これが使えないと、「ダメ判定」されるおそれがあります


おまけ:世界一わかりやすい?

大手サイトでは「相対参照・絶対参照」について「世界一わかりやすい」を標榜しているものがありますが、 実務者の視点では「これで初心者が理解できるかな?」と疑問に感じました。
本記事は、サイト開設当時からの課題であっな「相対参照・絶対参照」について、私なりに 「本当に現場で使える」を考えて書いたものです。

お役に立ったら、♡ を押していただけると励みになります。
noteのアカウントが無くても「スキ」できますので、是非!

いいなと思ったら応援しよう!