メインコンテンツへスキップ
見出し画像

[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のアカウントが無くても「スキ」できますので、是非!

    あなたへのおすすめ