Excelで数式をコピーしたら、参照するセルがずれて計算がおかしくなったことはないでしょうか。
けど、そんな中で悩むことは、
・数式をコピーすると参照先がずれてしまう
・絶対参照・相対参照・複合参照の違いがわからない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
数式をコピーしたときに参照先がずれてしまうのは、セルの参照方法が原因です。
今回は
・$を使って参照先を固定する方法(絶対参照・複合参照)
をゴールにします。
数式をどこにコピーしても、参照したいセルを固定できるようになります。

上の画像が完成形です。税込金額の列は、$で税率のセル(G2)を固定しているので、下にコピーしても正しい金額になります。
なお、F4キーでの切り替え方や、うまくいかないときの対処法(トラブルシュート)もあわせてご紹介します。
早速実装して試してみましょう!
もくじ
STEP1. 元データを用意する
まずは計算したい表を用意します。
A列が商品、B列が数量、C列が単価です。
D列(金額)とE列(税込金額)は、これから数式で求めていきます。
右側のG1セルには消費税率(10%)を入れておきます。
この税率のセルを、あとで$で固定して使います。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 商品 | 数量 | 単価 | 金額 | 税込金額 |
|---|---|---|---|---|
| ノートPC | 3 | 128000 | ||
| モニター | 5 | 32000 | ||
| キーボード | 12 | 4800 | ||
| マウス | 20 | 2200 | ||
| USBメモリ | 30 | 1800 | ||
| プリンタ | 4 | 29800 | ||
| スキャナ | 6 | 24000 | ||
| ヘッドセット | 8 | 9800 | ||
| Webカメラ | 10 | 6500 | ||
| スピーカー | 15 | 4200 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
STEP2. 相対参照で金額を計算する
金額を出したい D2セル に =B2*C2 と入力します。
入力したら、フィルハンドルでD11セルまで下にコピーしましょう。
コピー先のD3セルは =B3*C3、D4セルは =B4*C4 と、参照する行が自動でずれていきます。
このように、コピーに合わせて参照先が動くのが相対参照です。
$が付いていない参照は、すべてこの相対参照になります。
カンタンですね。

STEP3. 相対参照のままだと計算が合わない例
次に税込金額を出します。
E2セルに =D2*(1+G2) と入力し、E11セルまでコピーしてみましょう。
するとE2セルは正しく計算されますが、E3セル以降は税込になっていません。
コピーしたことで、参照先が G2 から G3、G4… と1行ずつずれてしまったからです。
ずれた先のセルは空なので、税率が0として計算されてしまうのです。
これが、参照先を固定したいときに$が必要になる理由です。

STEP4. $で参照先を固定する(絶対参照)
ずれてほしくない参照先には、$(ドルマーク)を付けます。
E2セルに =D2*(1+$G$2) と入力し、E11セルまでコピーしてみましょう。
$G$2 は「列も行も固定」という意味なので、どの行にコピーしても参照先はG2のまま変わりません。
今度はすべての行で消費税が正しくかかりました。
このように、参照先を固定するのが絶対参照です。

F4キーで$を付け外しする
数式を入力している途中で F4キー を押すと、参照に$を付け外しできます。
押すたびに G2 → $G$2 → G$2 → $G2 → G2 の順に切り替わります。
手で$を打ち込むより速くて正確なのでおすすめです。
実際の入力画面がこちらです。

複合参照($A1・A$1)で縦横にコピーする
$は「列だけ固定」「行だけ固定」という使い方もできます。
これを複合参照といいます。
上の表は、左の数量(A列)と、上の単価(15行目)を掛け合わせたものです。
セルには =$A16*B$15 と入っています。
$A16 は「A列を固定」、B$15 は「15行目を固定」という意味です。
この形にしておくと、1つの数式を右下へコピーするだけで、数量×単価の表が一気に完成します。

参照の種類のまとめ
$の位置で、参照の動き方が変わります。
コピーしたときの動きを表にまとめました。
| 参照の種類 | 書き方 | コピーしたときの動き |
|---|---|---|
| 相対参照 | G2 | コピー先に合わせて行も列も動く(ふつうはこれ) |
| 絶対参照 | $G$2 | 行も列も動かない(いつも同じセルを指す) |
| 複合参照(列固定) | $G2 | 列は動かないが、行は動く |
| 複合参照(行固定) | G$2 | 行は動かないが、列は動く |
迷ったら「動いてほしくないほうに$を付ける」と覚えましょう。
税率や単価のように1か所だけのセルを使い回すときは、$G$2 のように絶対参照にするのが基本です。
$を保ったままコピーする・文字としてコピーする
$が付いた数式は、コピーして貼り付けても$は外れません。
そのため、絶対参照にした数式は、貼り付け先でも同じセルを参照し続けます。
これが「$が付いたままコピーされる」という動きで、固定したいときには正しい動作です。
もし数式そのものを文字としてコピーしたいときは、数式バーの文字を選択してコピーするか、セルの先頭に アポストロフィ(’) を付けて入力します。
マニュアルや問い合わせ用に数式を控えておきたいときに便利です。
VBAで参照を絶対参照に一括変換する
すでに入っている数式を、まとめて絶対参照に変えたいときはVBAが便利です。
ConvertFormulaを使うと、相対参照の数式を絶対参照へ一括で変換できます。
Alt+F11でVBAエディターを開き、標準モジュールに次を貼り付けて実行します。
Sub ToAbsolute()
Dim rng As Range
For Each rng In Range("E2:E11")
rng.Formula = Application.ConvertFormula( _
rng.Formula, xlA1, xlA1, xlAbsolute)
Next rng
End Sub
対象のセルを書き換えるだけで、数式の$を一括で付けられます。
まずは手作業でF4キーに慣れてから、件数が多いときだけVBAを使ってみてくださいね。
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったようにいかないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| コピーしても値が変わらない | 参照が $G$2 のように絶対参照になっている | 動かしたい参照から$を外す(G2に戻す) |
| $の位置がわからなくなった | 複合参照のままになっている | 数式バーで参照を選びF4キーを押して位置を確認する |
| #REF! エラーが出た | 固定した参照先の行や列を削除した | 数式を入れ直すか、$の参照先を生きているセルに変える |
| 税率を変えても結果が変わらない | 数式ではなく値として貼り付いている | 税率のセルを参照した数式に置き換える |
| $を文字として表示したい | $は数式では参照記号として扱われる | セルの先頭にアポストロフィ(’)を付けて入力する |
関数の説明
今回の主役は関数ではなく「セルの参照方法」です。
$の意味と、コピーしたときの動きを表で確認しましょう。
$(ドルマーク)とは
| 書式 | A1(相対)/$A$1(絶対)/$A1・A$1(複合) |
|---|---|
| できること | 数式をコピーしたときに、参照するセルを固定したり相対的にずらしたりできます。 |
| 戻り値 | 参照の指定なので値は返しません。 |
| こんなときに | 税率・単価・為替レートなど、1か所のセルを全行で使い回すときに $G$2 のように絶対参照にします。 |
| 注意 | 数式の見た目は変わりませんが、コピーしたときの動きが変わります。 |
=D2*(1+$G$2)
F4キーの役割
| 役割 | 入力中の参照に$を付け外しする |
|---|---|
| 押すたびに | G2 → $G$2 → G$2 → $G2 → G2 の順に切り替わる |
| 使う場面 | 数式を入力している最中(参照を選択しているとき) |
G2 → $G$2 → G$2 → $G2 → G2
完成
金額と税込金額の列が、すべて正しく計算されました。
思ったとおりに動きましたか?
税込金額のE列は =D2*(1+$G$2) のように、税率のセルを$で固定しています。
そのため、数式をどの行にコピーしても税率がずれず、正しい金額を保てます。
$の使い方に慣れると、集計や見積もりの作成がぐっとラクになります。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
まずは今回のサンプル表で、ぜひ一度試してみてください。
「動いてほしくないほうに$を付ける」と覚えておけば、もう参照ずれに悩まされません。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。







コメントを残す