excel

【Excel】エクセルで数式・関数のコピーでずれるのをそのままでずらさない(計算されない:絶対参照:$マーク:F4キー:相対参照:複合参照)原因と直し方

当サイトでは記事内に広告を含みます

Excelで数式を入力したセルをコピーすると、参照先のセルがずれてしまい、意図した計算ができなくなることがあります。

例えば、割引率を参照して割引後金額を計算する数式をコピーしたら、参照すべき割引率のセルがずれてしまい、空白セルや関係ないセルを参照してエラーになってしまうという現象です。

一つのセルだけに数式を入力するなら問題ありませんが、同じ計算を複数行にコピーして使いたい場合、このずれる仕組みを理解していないと、正しい計算結果が得られません。特にExcel初心者の方は、数式をコピーしたら計算がおかしくなって困惑した経験があるのではないでしょうか。

この問題の原因は、Excelの「相対参照」という仕組みです。

Excelでは、数式をコピーすると、参照先のセルも相対的に移動するように設計されています。これは多くの場合便利な機能ですが、特定のセルを常に参照したい場合には、この自動調整が邪魔になってしまいます。税率や単価など、固定の値を参照したいときは、「絶対参照」という設定が必要です。

本記事では、Excelで数式をコピーした際に参照がずれる原因である相対参照の仕組みを詳しく解説し、参照を固定する絶対参照の使い方、行だけまたは列だけを固定する複合参照の活用方法、そしてF4キーを使った効率的な切り替え方法を紹介します。

数式のコピーで困っている方、$マークの意味がよくわからない方は、ぜひ最後までお読みください。

ポイントは

・相対参照は数式コピー時に参照先が自動的にずれる仕組み

・絶対参照は$マークを使って参照先を固定する方法

・F4キーで相対参照・絶対参照・複合参照を簡単に切り替えられる

です。

それでは詳しく見ていきましょう。

 

相対参照とは何か

まずは、数式をコピーするとなぜ参照がずれるのか、その仕組みを理解しておきましょう。

 

相対参照の基本的な動作

相対参照とは、数式をコピーした際に参照先のセルが相対的に移動する仕組みです。

例えば、C2セルに「=A2*B2」という数式が入っているとします。この数式は「同じ行のA列とB列を掛け算する」という意味です。この数式をC3セルにコピーすると、自動的に「=A3*B3」に変わります。1行下にコピーしたので、参照先も1行下がるわけです。

これはExcelが「A2とB2」という絶対的な位置ではなく、「2つ左のセルと1つ左のセル」という相対的な位置関係で記憶しているためです。この仕組みにより、同じ計算パターンを複数行に適用する際、一つ一つセルを指定し直す手間が省けます。

相対参照は、表の各行で同じパターンの計算を行う場合に非常に便利です。商品の単価×数量=金額という計算を100行分行う場合でも、1行目の数式をコピーするだけで、すべての行に正しい計算式が設定されます。多くの場合、この相対参照の動作が期待通りの結果をもたらします。

 

相対参照が問題になる場合

相対参照が問題となるのは、特定のセルを常に参照したい場合です。

例えば、消費税率10%がB1セルに入力されており、各商品の税込価格を計算したいとします。C2セルに「=A2*(1+B1)」という数式を入力すれば、商品価格に消費税を加算した金額が計算されます。しかし、この数式をC3セルにコピーすると「=A3*(1+B2)」となり、税率を参照すべきセルがB1からB2にずれてしまいます。

B2セルが空白であれば計算結果が0になり、別の数値が入っていれば誤った税率で計算されてしまいます。このように、固定の値を参照したい場合に相対参照が自動的に働くと、意図しない結果になります。

コピー元 数式 コピー先(1行下) 変化後の数式
C2 =A2*B2 C3 =A3*B3(期待通り)
C2 =A2*(1+B1) C3 =A3*(1+B2)(B1を参照したい)
D2 =A2+B2 E2 =B2+C2(1列ずれる)

 

絶対参照の使い方

特定のセルを常に参照したい場合は、絶対参照を使用します。

 

$マークで参照を固定する

絶対参照を設定するには、セル番地の前に$マーク(ドルマーク)を付けます

セル番地は列(アルファベット)と行(数字)で構成されていますが、$マークを両方に付けることで、そのセルへの参照を完全に固定できます。例えば「$B$1」と指定すると、数式をどこにコピーしても、常にB1セルを参照し続けます。

先ほどの消費税の例で言えば、C2セルに「=A2*(1+$B$1)」と入力します。この数式をC3、C4とコピーしても、A列の参照は相対的に変わりますが、B1の参照は固定されたままです。C3では「=A3*(1+$B$1)」、C4では「=A4*(1+$B$1)」となり、税率は常にB1セルを参照します。

 

F4キーで簡単に切り替える

$マークを手入力するのは面倒ですが、F4キーを使えば簡単に参照形式を切り替えられます

数式を入力している途中、またはセル番地を選択した状態でF4キーを押すと、相対参照→絶対参照→複合参照という順番で切り替わります。具体的には、「B1」→「$B$1」→「B$1」→「$B1」→「B1」という順番で循環します。

例えば、数式入力中に「=A2*(1+B1)」まで入力した状態で、B1の部分にカーソルがある状態でF4キーを1回押すと「=A2*(1+$B$1)」に変わります。この機能を使えば、$マークを手入力する必要がなく、効率的に絶対参照を設定できます。

F4キーの押下回数 参照形式 表記例 固定される部分
0回(初期状態) 相対参照 B1 なし(行も列も移動)
1回 絶対参照 $B$1 行と列の両方
2回 複合参照(行固定) B$1 行のみ
3回 複合参照(列固定) $B1 列のみ
4回 相対参照に戻る B1 なし

 

複合参照の活用方法

行だけまたは列だけを固定したい場合は、複合参照を使用します。

 

複合参照とは

複合参照とは、行と列のどちらか一方だけを固定する参照方式です。

$マークを列記号または行番号のどちらか一方だけに付けることで実現します。「$B1」とすれば列のB列だけが固定され、行は相対的に移動します。「B$1」とすれば行の1行目だけが固定され、列は相対的に移動します。

この複合参照は、九九の表や単価表など、縦横に計算を展開する場合に非常に便利です。

 

九九の表での活用例

複合参照の典型的な活用例として、九九の表を作成する場合を見てみましょう。

A列に1から9までの数字を縦に、1行目に1から9までの数字を横に配置します。B2セルに「=$A2*B$1」という数式を入力すると、A列の数値($A2)と1行目の数値(B$1)を掛け算する計算になります。

この数式を右方向にコピーすると、$A2の部分は固定されたまま、B$1の列だけがC$1、D$1と移動します。下方向にコピーすると、$A2の行だけがA3、A4と移動し、B$1の部分は固定されたままです。この一つの数式を縦横にコピーするだけで、九九の表全体が完成します。

複合参照を使えば、単価表と数量表から金額表を作成する場合にも非常に効率的です。単価が縦に並んでいて、数量が横に並んでいる場合、「=$A2*B$1」のような数式を一つ作れば、それを縦横にコピーするだけで、すべての組み合わせの金額が自動計算されます。

 

行固定と列固定の使い分け

B$1は行を固定、$B1は列を固定します。

横方向にコピーしながら特定の行を参照し続けたい場合は「B$1」を使います。例えば、1行目に各月の売上目標があり、各商品の売上をその目標と比較したい場合、「=B2/B$1」という数式を使えば、横にコピーしても常に1行目の目標値を参照します。

縦方向にコピーしながら特定の列を参照し続けたい場合は「$B1」を使います。例えば、B列に各商品の単価があり、C列以降に各月の数量がある場合、「=$B2*C2」という数式を使えば、横にコピーしても常にB列の単価を参照します。

参照形式 横コピー時 縦コピー時
相対参照 B1 C1、D1と移動 B2、B3と移動
絶対参照 $B$1 常にB1 常にB1
複合(行固定) B$1 C1、D1と移動 常に1行目
複合(列固定) $B1 常にB列 B2、B3と移動

 

数式をそのままコピーする方法

場合によっては、参照を変えずに数式をそのままコピーしたいこともあります。

 

数式を文字列としてコピーする

絶対参照を使わずに数式をそのままコピーするには、数式バーから数式をコピーする方法があります。

コピー元のセルを選択し、画面上部の数式バーに表示された数式をマウスで選択してコピー(Ctrl+C)します。コピー先のセルを選択し、数式バーに直接ペースト(Ctrl+V)すると、数式がそのまま貼り付けられます。この方法では、Excelが相対参照を自動調整しないため、元の数式と全く同じ内容がコピーされます。

 

置換機能を使った方法

すでに入力済みの数式の参照を後から固定したい場合は、置換機能を使う方法が便利です。

Ctrl+Hキーを押して「検索と置換」ダイアログを開きます。「検索する文字列」に「=」、「置換後の文字列」に「@」などの一時的な文字を入力して置換します。これにより、数式が文字列に変わります。次に、必要な$マークを追加してから、再度「@」を「=」に置換すれば、数式として機能します。

ただし、この方法は複雑な数式では手間がかかるため、最初から適切な参照形式で数式を作成することをおすすめします。

 

参照形式の選び方

相対参照、絶対参照、複合参照のどれを使うべきか、判断基準を確認しましょう。

 

コピー方向と固定したい部分で判断する

参照形式は、「どの方向にコピーするか」と「何を固定したいか」で決まります。

縦方向のみにコピーする場合で、参照先も一緒に移動させたいなら相対参照(B1)を使います。同じ列の上のセルを常に参照したいなら、行を固定した複合参照(B$1)を使います。特定のセルを常に参照するなら絶対参照($B$1)を使います。

縦横両方向にコピーする場合は、複合参照が活躍します。縦にコピーするときは列を固定、横にコピーするときは行を固定といった使い分けが必要です。

Excelで数式をコピーする際の参照のずれは、相対参照という仕組みによるものです。この仕組みを理解し、$マークを使った絶対参照や複合参照を適切に使い分けることで、効率的に正確な計算式を作成できます。

最も重要なのは、数式を作成する段階で「この参照先はコピー時に移動させたいか、固定したいか」を考えることです。F4キーを活用すれば、簡単に参照形式を切り替えられるので、数式入力時に適切な形式を選択しましょう。

また、数式をコピーした後は、必ず計算結果を確認する習慣をつけることが大切です。特に複雑な数式では、意図した参照になっているかを数式バーで確認すると、エラーを早期に発見できます。

相対参照と絶対参照を使いこなせば、Excel作業の効率が大幅に向上します。

 

まとめ エクセルで数式コピーでずれる(絶対参照:$マークなど)対処法

エクセルで数式コピーでずれる場合の対処法をまとめると

・相対参照は数式コピー時に参照先が相対的に移動する仕組み、1行下にコピーすれば参照先も1行下がる、同じ計算パターンを複数行に適用する際に便利だが固定値を参照したい場合は問題になる

・絶対参照は$B$1のように列と行の両方に$マークを付ける、数式をどこにコピーしても常に同じセルを参照、税率や単価など固定値を参照したい場合に使用

・複合参照はB$1(行固定)または$B1(列固定)のように一方だけに$マークを付ける、九九の表や単価表×数量表のような縦横展開に便利、F4キーで相対参照→絶対参照→複合参照と循環する

・対処法は数式入力時にF4キーで参照形式を切り替える、コピー方向と固定したい部分を考えて適切な参照を選ぶ、数式バーから直接コピーすればそのまま貼り付けられる

これらの参照形式を適切に使い分けることで、数式コピー時のずれを防ぎ、正確な計算を効率的に行えます。

最も重要なのは、数式作成時に「この参照はコピー時に移動させるか、固定するか」を意識することです。

F4キーを使えば簡単に参照形式を切り替えられるので、数式入力の段階で適切な設定を行いましょう。

数式をコピーした後は必ず結果を確認し、意図した計算になっているかチェックする習慣をつけることで、計算ミスを防げます。

相対参照・絶対参照・複合参照を使いこなして、Excel作業の効率化を実現していきましょう!