edubun
日本語

絶対参照と複合参照

ドル記号が一つあるかないかで、コピーした数式がB1の税率を見続けるか、下の空のセルへずれていくかが決まります。

一度コピーしただけで税の列がおかしくなる理由

まずはパズルから。税率10%がB1にあり、四つの価格がA4からA7に入っています。ある人がB4に=A4*B1と入力し、正しい2が出たので、B7まで下方向へコピーしました。するとB5は0、B6は#VALUE!、B7は25になりました。先を読む前に、この三つのセルがそれぞれなぜまちがったのか言ってみましょう。

B5をクリックして数式を読んでみましょう。=A5*B2です。下方向へコピーすると、ふつうの参照はすべて1行ずつ動きます。価格の参照はA4からA5へ、これは正しい動きです。ところが税率の参照もB1からB2へ動き、B2は空です。空のセルはかけ算では0として扱われるので、B5は何も言わずに0を表示します。B6はB3をかけていますが、B3には見出しの「Tax」が入っています。Microsoftの#VALUE!のページによると、+や*のような演算子は文字列を含むセルを計算できないことがあり、そのためエラーになります。B7はB4、つまり最初の税の結果をかけて、12.5 × 2 = 25になります。これはもっともらしく見えるので、三つの中でいちばんたちが悪いのです。一度のコピーで答えが三つまちがい、そのうちエラーメッセージが出るのは一つだけです。

直し方は、B1は決して動かさないと表計算ソフトに伝えることです。番地の一部の前にドル記号をつけると、その部分が固定されます。$B$1は列と行の両方を固定するので、絶対参照になります。数式がどこへ移ってもB1を指すという意味です。最初の税を=A4*$B$1と書いて下方向へコピーすると、=A5*$B$1、=A6*$B$1……となります。Microsoft自身の例は=$B$4*$C$4で、D4からD5へコピーしてもまったく同じままです。この記号はお金とは関係ありません。目印です。

税率を専用のセルに置いておくと、もう一つよいことがあります。税率が10%から12%に変わっても、B1を書き換えるだけですべての行が一度に再計算されます。もし税率を*0.1のように数式ごとに打ち込んでいたら、コピーを一つ残らず探し出さなければならず、見落とした一つはまったくふつうに見えるまちがった数字を残します。ですから、変わるかもしれないもの(税率、上限、為替レート)は、上のほうの見出しつきのセルに置きましょう。それを絶対参照で指します。

読み込み中

ドラッグで回転、スクロールまたはピンチで拡大・縮小。

まずB4をそのまま下方向へコピーし、B5、B6、B7を見てみましょう。次にB4を選び、数式バーのB1の後ろをクリックしてF4(または$ボタン)を押し、もう一度下方向へコピーします。

行だけ、または列だけを固定する

一部分だけを固定することもできます。A$1では行が固定されて列が動き、$A1ではその逆です。Microsoftの表では、それぞれの形を2つ下、2つ右へコピーしています。$A$1は$A$1のまま、A$1はC$1に、$A1は$A3に、A1はC3になります。記号を手で打つことはめったにありません。数式の編集中に参照の上にカーソルを置き、F4を押します。押すたびに次の形(A1、$A$1、A$1、$A1)に変わり、またA1に戻ります。Googleのショートカット一覧でもスプレッドシートはF4で、Macのキーボードでは Fn+F4 です。

参照列行2つ下、2つ右へコピー
A1動く動くC3
$A$1固定固定$A$1
A$1動く固定C$1
$A1固定動く$A3

複合参照が役に立つのはどんなときでしょうか。上に一つの入力、横にもう一つの入力が並ぶ表で、その代表が九九の表です。B1:F1に1から5を、A2:A6にも1から5を入れ、B2に=B$1*$A2と書きます。それをF2まで右へ、F6まで下へコピーします。25個のコピーはどれも、上の数を1行目から、横の数をA列から読み続けます。一つの数式で表全体が正しく埋まります。

Googleスプレッドシートでは、F4で参照が切り替わるのは数式を入力しているあいだだけです。数式の外では、ショートカット一覧によるとF4は「やり直し」のキーの一つです。
読み込み中

ドラッグで回転、スクロールまたはピンチで拡大・縮小。

B2に=B$1*$A2と書きます。B2:F2を選んで「右方向へコピー」を押し、次にB2:F6を選んで「下方向へコピー」を押します。「数式を表示」で、どの部分が動かなかったか確かめましょう。
よくある間違い
  • =A4*B1 を$なしで下方向へコピーする。 税率の参照が価格といっしょにB2、B3、B4へずれ、三つの税の代わりに0、#VALUE!、まちがった25が出ます。
  • $を違う部分につける:=A4*B$1 は下方向へコピーしても大丈夫ですが、=A4*$B1 はだめです。 $B1は列だけを固定するので、行は動いたままです。数式をどちらの方向へコピーするかを決め、その方向に動いてしまう部分を固定しましょう。
  • 税率を数式ごとに *0.1 と打ち込む。 税率が変わるまでは動きます。変わったらすべてのコピーを探して直さなければならず、見落としたものもふつうに見えます。
  • Googleスプレッドシートで数式の外でF4を押し、$が出るのを待つ。 F4で参照の種類が切り替わるのは数式の入力中だけです。それ以外では「やり直し」のキーの一つです。
先生からひとこと学習者がつまずくのはドル記号そのものではありません。コピーした数式がどこを指すかを予想するところでつまずきます。$を紹介する前に、壊れた数式をコピーさせ、B5、B6、B7を声に出して読ませましょう。三つの違うまちがった答えは、どんな規則よりも説得力があります。そのうえで、コピーする前に毎回する質問を一つ教えます。「どの行も共通で使うべきセルはどれか」。そこにドル記号をつけます。複合参照は絶対参照に慣れてからにし、最初の例には九九の表を使いましょう。答えが目で簡単に確かめられるからです。
  1. =A4*$B$1 を1行下にコピーしました。何になりますか?
  2. 数式バーでカーソルがA1の上にあります。F4を1回押すと、A1は何になりますか?
  3. F4をもう1回押すと?
  4. =A$1 を2つ下、2つ右へコピーしました。何になりますか?
  5. =$A1 を2つ下、2つ右へコピーしました。何になりますか?
  6. B2の =B$1*$A2 をC3にコピーしました。何になりますか?
  7. その表で =E$1*$A5 の値はいくつですか?
  8. B1に10%、B4に =A4*B1 が入っています。B4をB7まで下方向へコピーすると、何がおかしくなりますか?
    • 税率の参照がB1からずれるので、B5は0になり、その下の行もまちがいます
    • どの行も#REF!になる
    • どの行も同じ価格になる
    • 何もおかしくならない
  9. 行を固定し、列は動かせる参照はどれですか?
    • A$1
    • $A1
    • $A$1
    • A1
  10. Macで、Googleスプレッドシートの参照の種類を切り替えるキーはどれですか?
    • Fn+F4
    • Ctrl+D
    • Ctrl+~
    • Shift+F2
ポイント
  • $はその後ろの部分を固定します:$A$1は両方、A$1は行、$A1は列。
  • どの行も共通で使う一つの入力セルには$B$1を使いましょう。
  • F4で A1、$A$1、A$1、$A1 と切り替わります(Googleスプレッドシートのmacでは Fn+F4)。
  • 複合参照を使えば、一つの数式で表全体を埋められます。
このコースの出典 (19)
  • Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
  • Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
  • Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
  • Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
  • Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
  • Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
  • Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
  • Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
  • Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
  • Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
  • Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
  • Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
  • Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
  • Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
  • Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
  • Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
  • Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
  • Ablebits (IF without value_if_false returns FALSE)
  • Spreadsheet Class (Sheets circular dependency shows #REF!)

確認日: 2026-10-19