Excelを学習していくと、今回話題にする「相対参照」「絶対参照」という用語が出てきて、“難しい”という印象を持ってしまいがちです。
いずれも「セル参照」の方法を大別したものです。

英語で「relative and absolute cell references」と呼んでいますので、この日本語訳はむしろ直訳です。

さて、Excelを学び始めた方が、例えば「=A1+B1」という数式を見て「A1」「B1」というセル参照が「相対参照」だと言われ「?」と感じます。(下図)

 

だって「A1」セルも「B1」セルもシート上の確定されたセルのアドレスを指しているので、むしろこれが「絶対参照」なのでは?と考えるわけです。

Excelでの「相対参照」というのは、参照元であるセル「C1」から見て参照先のセル「A1」は 2つ左隣のセルを指し、セル「B1」は 1つ左隣のセルを指していることを示しています。
いま、先ほどの A1~C1セルをコピーして B3~D3セルにコピーしてみます。(下図)

 

すると、セル「D3」の中は「=B3+C3」となっています。
このように「左隣の 2つのセルの値を足す」という同じような計算をする場合には、参照元のセルから見て“相対的なセル参照”が便利なので、Excelではデフォルトでは「相対参照」でセルのアドレスを表記しています。

データ表を思い浮かべても、「単価」と「数量」の掛けた結果を「価格」欄に表示するといった計算をよく見ますが、1行だけ「価格」の数式を入力したら、残りの行について「コピー」や「オートフィル」で一気に埋めてしまいますね。
こんなとき、参照先のセルを確定的な「絶対参照」で参照すると、1行 1行について計算式を入力することになり、不便で仕方ありません。

それならば「絶対参照」は不要かというとそうではありません。
上記のような「コピー」や「オートフィル」のためだけではありませんが、参照先のセルを固定的に参照したいことがあります。

よく見かける例ですが、下図の表のように「金額」に「消費税率」を掛けて「消費税」を求めます。

 

E3セルは「=D3*F1」と入力すればキャベツの消費税は求まります。
ところが、「相対参照」であるその数式を E4~E8セルにコピーまたはオートフィルすると、E4~E8セルの数式のうち 掛け算の第1項は参照元のセルの左隣のセル「金額」を指しているので問題ありません。
ところが、第2項は E3セルからは 2つ上の右隣のセルを参照しており、コピーまたはオートフィルすると、E4~E8セルでも 2つ上の右隣のセルを参照することになり、的外れなセルを参照してしまいます。

この掛け算の第2項については、常に F1セルを固定的に参照するようにしてほしいので「絶対参照」する必要があります。
E3セルの数式を上の図のように「=D3*$F$1」として、その後 E4~E8セルにコピーまたはオートフィルすると正しく計算してくれます。

このように、Excelでは「絶対参照」するセルのアドレスに「$」を付けて表記します。
手入力しても良いですが、「F1」セルを入力またはクリックしたタイミングでキーボードの [F4]を押すと「$F$1」となり、このほうが便利なので覚えておきましょう。

「$F$1」は「F」列「1」行の両方とも固定したセル参照ですが、列のみ あるいは行のみ固定的に参照したいこともあります。
これを「複合参照」(mixed cell reference)と言います。
「$F$1」としたのと同様に、さらに [F4]を押すと「F$1」に、さらに [F4]を押すと「$F1」に、もう一度 [F4]を押すと「F1」に、と循環して変化していきます。

上記の例では、各商品の消費税を求めるのに E3セルの数式を行方向にコピーまたはオートフィルするわけなので「=D3*F$1」としても同じ結果になります。
つまり、掛け算の第2項は隣の列の「1」行を固定的に参照するわけです。

今回は簡単のため、単独のセルを参照する例としましたが、Excelのセル参照はセル範囲やシートを跨ぐ参照もあり、これらについても「相対参照」「絶対参照」「複合参照」を使い分けることができます。

(おまけ)
上記のようにセルのアドレスで参照することを「A1参照スタイル」と言います。
Excelではこのほか「R1C1参照スタイル」での参照形式も利用できます。
これは「R <行番号> C <列番号>」の形式でセルの位置を表し、例えば「R2C3」は「2」行「3」列を指す絶対参照です。
この「R1C1参照スタイル」では、「R[2]C[3]」という表記もでき、2行下で 2列右のセルを表す相対参照です。
マクロや VBAなどで使われる参照スタイルですが、「相対参照」などを理解するにはこのスタイルのほうが分かりやすいかもしれません。
通常の Excel操作では使わないと思いますが、[ファイル]-[オプション]-[数式]の「数式の処理」項の「R1C1参照形式を使用する」を有効にすると使えます。