相対参照について
ここから3レッスン続けて、「参照」 という、Excelの中で最も重要な概念を学びます。
参照には3種類あります。
- 相対参照 (今回のレッスン)
- 絶対参照 (レッスン036)
- 複合参照 (レッスン037)
Excelで関数を使っていくうえで、ここは必ず通る道です。少し抽象的な話ですが、丁寧に追っていきましょう。
相対参照とは
普段、何気なく数式を書くときに使っているのが 相対参照 です。実は、これまでのレッスンで組んできた数式は、全部この相対参照でした。
少し回りくどい言い方ですが、セル参照でセル番地を取得した際、デフォルトで相対参照の状態になっている、というのが正しい説明です。
たとえば、A1セルに「=B1+C1」と入力したとします。
| A | B | C | |
|---|---|---|---|
| 1 | 30=B1+C1 | 10 | 20 |
これを A2 にコピーすると、自動で「=B2+C2」に変わります。A3 にコピーすると「=B3+C3」。
| A | B | C | |
|---|---|---|---|
| 1 | 30=B1+C1 | 10 | 20 |
| 2 | 70=B2+C2 | 30 | 40 |
| 3 | 110=B3+C3 | 50 | 60 |
数式をコピーしただけなのに、A2は「B2+C2」、A3は「B3+C3」と、参照先が1行ずつ下にズレています。手で書き換えてはいません。
このように、コピー先のセルに合わせて、参照されるセルが「相対的に」ズレていく のが、相対参照です。
なぜ「相対」なのか
Excelの内部では、「=B1+C1」という数式を、こんなふうに解釈しています。
「自分の左隣のセルと、その左隣のセルを足してね」
「B1」とか「C1」という具体的な番地ではなく、「自分から見て、左隣」「自分から見て、2つ左」という 位置関係 で記憶しているのです。
だから、その数式を A2 にコピーすると、A2から見た「自分の左隣(B2)」と「2つ左(C2)」を足す、と解釈し直されます。番地そのものではなく、「自分からの距離と方向」で覚えている、とイメージしてください。
これが「相対」参照という名前の由来です。
ちょっとした実務シーン
商品リストで、各行の 金額 = 単価 × 数量 を計算したい、というケース。
- B列:単価
- C列:数量
- D列:金額 (ここを計算する)
D2 に「=B2*C2」と入力すると、商品Aの金額が計算されます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品No | 単価 | 数量 | 金額 |
| 2 | 1001 | 100 | 3 | 300=B2*C2 |
| 3 | 1002 | 200 | 5 | |
| 4 | 1003 | 150 | 4 |
次に、D2 のフィルハンドル(セル右下の小さな四角)を 下にダブルクリック(または下にドラッグ)すると、こうなります。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品No | 単価 | 数量 | 金額 |
| 2 | 1001 | 100 | 3 | 300=B2*C2 |
| 3 | 1002 | 200 | 5 | 1000=B3*C3 |
| 4 | 1003 | 150 | 4 | 600=B4*C4 |
D3は「=B3*C3」、D4は「=B4*C4」。それぞれの行に合わせて、参照が自動で調整 されました。1つ数式を書けば、コピー操作で何百行でも一瞬で計算 できる。これが相対参照です。
相対参照の本質
「自分から見て、どこを参照しているか」を、Excelは記憶しています。
数式を別のセルにコピーすると、その「自分から見て」の起点が、コピー先に移動します。だから、参照先も自動でズレるのです。
難しく考えず、「数式は、引っ越し先でも同じ景色を見る」とイメージするとつかみやすいです。
縦にコピー / 横にコピー
相対参照は、コピーする方向によって、ズレ方が変わります。
縦にコピー(下にコピー)
行番号が変わります。「=B1+C1」を縦にコピーすると、「=B2+C2」「=B3+C3」と、行だけが変化します。
横にコピー(右にコピー)
列番号が変わります。「=A1+A2」を横にコピーすると、「=B1+B2」「=C1+C2」と、列だけが変化します。
| A | B | C | |
|---|---|---|---|
| 1 | 10 | 100 | 1000 |
| 2 | 20 | 200 | 2000 |
| 3 | 30=A1+A2 | 300=B1+B2 | 3000=C1+C2 |
A3の「=A1+A2」を右にコピーすると、B3は「=B1+B2」、C3は「=C1+C2」。今度は列だけがズレています。
斜めにコピー
斜めにオートフィルはできませんが、コピー&ペーストの操作で行も列も、両方 相対的に 変わります。
なぜ「相対参照」を学ぶ必要があるのか
実は、これだけで困らないケースも多いです。「=B2*C2 を下にコピーして、金額を計算する」だけなら、相対参照だけで完結します。
ただ、もう少し複雑な計算をしようとすると、「ある特定のセルだけ、ズレてほしくない」 というシーンが出てきます。
たとえば、B1セルに「消費税率 10%(0.1)」と書いてあり、C列に各商品の金額、D列に「金額 × 消費税率」を計算したいとします。D2 に「=C2*B1」と入力するとうまくいきます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 税率 | 0.1 | 金額 | 税額 |
| 2 | 300 | 30=C2*B1 | ||
| 3 | 1000 |
ところが、これを D3 にコピーすると、こうなってしまいます。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 税率 | 0.1 | 金額 | 税額 |
| 2 | 300 | 30=C2*B1 | ||
| 3 | 1000 | 0=C3*B2 |
D3は「=C3*B2」。B1(消費税率)を参照したかったのに、相対参照のルール通り、B1も1つ下のB2にズレてしまいました。B2は空っぽなので、税額は0。これは困ります。
「B1だけはズレないでほしい」── その答えが、次のレッスンで学ぶ 絶対参照 です。Excel初心者が最初につまずくポイントでもあります。相対参照の「便利さ」と「困りどころ」、両方を押さえておくと、つまずきを回避できます。
では、このまま次のレッスン、絶対参照に進んでください。
まとめ
- 相対参照は、コピー先に合わせて参照がズレる 動き
- 「自分から見て、どこを参照するか」という位置関係で記憶している
- 縦にコピーすれば行番号、横にコピーすれば列番号がズレる
- 1つの数式を書いて、何百行・何百列も一気に計算できる
- ただし、「ズレてほしくないセル」もある → 次のレッスンの絶対参照へ
ショートカット
※このレッスンに対応するショートカットはありません。