1. ホーム
  2. ブログ
  3. 絶対参照($)の使い方|コピーしても壊れない式

絶対参照($)の使い方|コピーしても壊れない式

この記事は 事務でよく使うExcel関数まとめ|目的から探せる一覧 の1本です。他の関数もまとめて見られます。

式を1行だけ入れたときは合っていたのに、下にコピーしたら途中から結果がおかしくなった。

Excelを使っていれば必ず一度は経験します。原因は式の中身ではなく、参照が一緒に動いてしまっていることです。

これを止めるのが $(ドル記号) です。関数ではありませんが、これを知らないと関数が正しく動きません。ここまでの記事で何度も「詳しくは別記事で」と書いてきた部分を、まとめて扱います。

まず、何が起きているのか

消費税を計算する表です。税率をB1に書いて、各行で掛け算しています。

A1 =B4*B1
AB
1項目金額
2消費税率0.1
3  
4杉板60,000
5檜柱76,000
6合板27,000
見積
B4に =B4*B1 を入れた…わけではありません。C列に税額を出していきます。

C4に =B4*B1 と入れて、下にコピーします。すると、こうなります。

C6 =B6*B3
ABC
1項目金額税額
2消費税率0.1 
3   
4杉板60,0006,000
5檜柱76,0000
6合板27,0000
見積
1行目だけ合っていて、2行目以降が 0 になっています。

式は消えていません。数式バーを見ると =B6*B3 になっています。

書いたのは =B4*B1 でした。下に1行コピーするたびに、掛ける相手の B1 も一緒に下へ動いてしまったのです。B2、B3 は空欄なので、掛け算の結果が0になります。

!

これがExcelの標準の動き(相対参照)です

Excelは式をコピーすると、参照先も同じ方向に動かします。
「1つ下の行にコピーしたなら、参照も1つ下だろう」と判断する仕組みです。

金額の列(B4→B5→B6)は、これで正しい。
税率(B1)は、動いてほしくない。

動いてほしいものと、動いてほしくないものが混ざっているのが問題です。

$ は「動くな」という指示

参照の前に $ を付けると、その方向には動かなくなります。

=B4*$B$1
  1. B4行も列も動く(コピーするとB5、B6…と付いてくる)
  2. $B$1行も列も動かない(どこにコピーしてもB1のまま)

これで直ります。

C6 =B6*$B$1
ABC
1項目金額税額
2消費税率0.1 
3   
4杉板60,0006,000
5檜柱76,0007,600
6合板27,0002,700
見積
どの行にコピーしても、掛ける相手は B1 のままになりました。

$ の付け方は4通り

$列の前行の前に、別々に付けられます。

書き方意味よく使う場面
A1行も列も動く同じ行の中での計算
$A$1行も列も動かない税率・単価など、1か所に書いた値を全体で使う
$A1列だけ固定(行は動く)右にコピーしても、見る列を変えたくないとき
A$1行だけ固定(列は動く)下にコピーしても、見る行を変えたくないとき
!

$ は「すぐ後ろを固定する」と覚えてください

$A1$ の後ろは A なので、列が固定
A$1$ の後ろは 1 なので、行が固定

どちらを固定したいかで、$ を置く位置が決まります。

F4キーで切り替わります

$ を手で打つ必要はありません。

  1. 数式バーで、対象のセル番地をクリックする

    B1 の部分にカーソルを置くか、ドラッグして選びます。

  2. F4 キーを押す

    押すたびに B1$B$1B$1$B1B1 と切り替わります。

  3. 欲しい形で止めて、Enter

    これだけです。

!

ノートパソコンでは Fn+F4 のことがあります

F4キーが音量や画面の明るさに割り当てられている機種では、
Fn を押しながら F4 を押してください。

反応しない場合は、$ を直接キーボードで打っても同じです(Shift+4)。

縦横に広がる表では、片方だけ固定する

$B$1 のように全部固定すれば安全、と思いがちですが、それでは困る場面があります。

担当者別・月別の集計表を作るとします。式を右にも下にもコピーしたい形です。

B3 =COUNTIFS(明細!$B:$B, $A3, 明細!$C:$C, B$2)
ABCD
1担当9月10月11月
2    
3田中534
4佐藤261
5鈴木423
進捗
B3に式を1つ書いて、右と下にコピーするだけで表全体が埋まります。

ここで使っている固定のしかたです。

部分書き方理由
担当者名$A3列だけ固定。右にコピーしても、担当者はA列から読む。下にコピーすると次の担当者へ
B$2行だけ固定。下にコピーしても、月は2行目から読む。右にコピーすると次の月へ
参照する範囲$B:$B両方固定。どこにコピーしても同じ列を見る

もし全部を $A$3 $B$2 にしていたら、全部のセルが同じ値になります。逆に $ を1つも付けなければ、右や下にコピーした瞬間に全部ズレます。

「何を動かしたいか」から逆算して $ を置く、という考え方です。

実務で $ が必要になる場面

  1. 1か所に書いた値を、全行で使うとき

    消費税率、為替レート、共通の単価、手数料率。「設定値」を表の上のほうに1つ置いて、全行から参照する形です。

  2. 別の表(マスタ)を参照するとき

    XLOOKUPやVLOOKUPの「探す範囲」は必ず固定します。固定しないと、下にコピーした分だけマスタの範囲がズレていきます。

  3. 集計の範囲を指定するとき

    SUMIFSやCOUNTIFSの範囲も同じです。$ を付けないと、下にコピーするほど範囲が短くなります。

  4. 縦横に広がる集計表を作るとき

    上のCOUNTIFSの例です。$A3B$2 を使い分けます。

2つ目と3つ目は、これまでの記事で マスタ!$A:$A明細!$D:$D と書いてきた理由そのものです。

よくあるつまずき

×

下にコピーすると、だんだん合計が小さくなる

=SUM(B2:B10) のように範囲を固定していません。

下にコピーすると B3:B11B4:B12 とズレていきます。
=SUM($B$2:$B$10) と固定してください。

×

全部のセルが同じ値になった

固定しすぎています。$A$3 のように全部固定すると、
どこにコピーしても同じセルを見にいきます。

動いてほしい方向の $ を外してください。

!

$ は「安全だから全部付ける」ものではありません

全部固定した式は、コピーしても壊れませんが、コピーする意味もなくなります。
1つずつ手で直すことになり、かえって手間が増えます。

「この式を、どっち方向にコピーしたいか」を先に決めてから $ を置いてください。

確認のしかた

$ を付けたら、必ず2か所で確かめてください。

  1. 一番上の行で、手計算と合うか

    ここが合っていなければ、式そのものが違います。

  2. 一番下の行で、数式バーを見る

    参照先が意図どおりか確認します。$B$1$B$1 のままなら正解。B10 のように動いていたら固定できていません。

途中の行ではなく、一番下を見るのがコツです。ズレは下にいくほど大きくなるので、一番下で正しければ全部正しいことになります。

今日やってみること

  1. 式をコピーしている表を1つ開く

    見積書、集計表、単価計算。どれでも構いません。

  2. 一番下の行の式を、数式バーで見る

    一番上の行の式と見比べて、動いてほしくないところが動いていないか確認します。

  3. 動いていたら、そこに F4$ を付ける

    上の行から入れ直して、下までコピーします。

  4. 一番下でもう一度確認する

    これで完了です。

この確認を習慣にすると、「なぜか合わない」がほとんど起きなくなります。

次に読むとよい記事

$ は、ここまでの記事すべての土台になっています。


「昔から使っている集計ファイルの数字が、どうも怪しい」という場合、原因はこのあたりにあることが多いです。実際のファイルを拝見すれば判断できます。現状のヒアリングと課題整理は無料です。

#Excel#絶対参照#数式

この記事について

SUPRAXは、林業・製造・運送の現場経験をもとに、中小企業の業務改善・AI活用・GISの支援を行っています。 記事の内容について「うちの場合はどうか」を聞きたい方は、無料相談をご利用ください。

無料で相談してみる

あわせて読みたい

記事一覧へ戻る