数式・関数で参照先のセルを固定する小技の方法を解説!【Excel】【画像解説付き】

スポンサーリンク

【今回の問題】オートフィルを反映させたセルが0になってしまう。

例の画像では基準値(A2)の1000を倍数列(C2)の値を掛け算して、掛け算結果(D2)に入れたものです。

 

そのため、以下の画像のように、D2には"=A2*C2″が入っています。

 

このD2の値をD9セルまでオートフィルを反映させます。

 

D3~D9まですべて0になってしまいました。。。

ここが今回の問題となります。

 

【原因】なぜオートフィルの結果が0になってしまうのか

原因を確認するために、オートフィルを反映させたセルの中で1つセルを見てみましょう。

上の画像は本来、A2セルの「1000」をC6セルの「5」を掛け算結果の「5000」がD6セルに入るべきですが、中に何も入っていないA6セルの「0」とC6セルの「5」の掛け算の結果(0*5=0)が入ってるため、D6セルに0が入ってしまっています。

 

原因は以下の画像のようにオートフィルの際にD列が移動した分だけC列と同時にA列の参照先のセルも移動してしまっているためでした。

参照先のセルとは、数式が計算するのに指定先としているセルのことです。

今回のD2の場合は参照先のセルはA2とC2のセルです。

このこと自体はオートフィルの正しい機能ではありますが、今回に限っては都合が悪いですよね。

掛け算結果のD列のセルを全部手作業で修正するのも面倒くさいし。。。

 

しかし、大丈夫です。セル参照の際にA2セルだけを固定する方法があります。

 

【解決】オートフィルで参照先のセルを固定する方法

一旦、掛け算の例は忘れましょう。

以下の画像のようにB2セル「〇」の周りに「X」があり、セルF4にC4を参照させると、もちろんF4には「〇」が入ります。

 

 

これを使って参照先セルを固定する方法を解説します。

参照先のセルの固定は縦、横、斜め、全てに反映させることが出来ます。

 

縦のオートフィルに対してセルを固定させる

縦のオートフィルとは、オートフィルを上下に反映させることを指しています。

縦に移動する=行番号が移動するということなので、この行番号の移動を固定する必要があります。

 

そのため、F4セルの「=C4」の行番号である「4」の前に「$」を入れることで、縦の移動を固定することが出来ます。

ここでEnterキーを押すとセルF4は「〇」に戻りますが、中身は「=C$4」で行を固定しながらC4の「〇」を参照しています。

 

そのため、以下の画像のように、上下にオートフィルを行っても、「X」とはならず、参照先をC4にキープしたままオートフィルを行うことが出来ます。

 

しかし、列は固定していません。

左右にオートフィルを行うと、左はB4を参照し、右はD4を参照するため「X」となります。

 

横のオートフィルに対してセルを固定させる

横のオートフィルとは、オートフィルを左右に反映させることを指しています。

 

縦に移動する=列アルファベットが移動するということなので、この列の移動を固定する必要があります。

そのため、F4セルの「=C4」の列アルファベットである「C」の前に「$」を入れることで、横の移動を固定することが出来ます。

ここでEnterキーを押すとセルF4は「〇」に戻りますが、中身は「=$C4」で列を固定しながらC4の「〇」を参照しています。

そのため、以下の画像のように、左右にオートフィルを行っても、「X」とはならず、参照先をC4にキープしたままオートフィルを行うことが出来ます。

しかし、行は固定していません。

上下にオートフィルを行うと、上はC3を参照し、右はC4を参照するため「X」となります。

 

縦、横、斜めのオートフィルに対して参照先セルを固定させる(完全固定)

次は、縦、横、斜めすべてのセルにオートフィルを行っても、参照先が固定される方法の解説です。

この時の斜めとは、、、

例えば、左上にオートフィル場合、直接斜めにオートフィルを行なわず、

左に1セル、そのセルから上に1セルにそれぞれオートフィルを行うことで、斜めを実現します。

このため、上下のオートフィル、左右のオートフィルどちらとも参照先のセルの固定を行わなければなりません。

そのため参照先をC4とする場合は以下のように、列の移動を固定するために「C」の前に「$」、行の移動を固定するために「4」の前に「$」をつけることで、上下左右すべての移動において、参照先のセルを固定させることが出来ます。

=$C$4

 

斜め隣のセルにも参照先の固定を行うことが出来ます。

 

上下左右、斜めのセルも参照先を固定することが出来たため、全てのセルでセルC4の「〇」が参照されます。

 

また、参照先の固定はオートフィルを行ったすべてのセルに適用されます。

これを踏まえて、掛け算の例に戻ります。

 

掛け算の例では、、、

セルA2の上下(行)の移動を固定したいので、行番号である「2」の前に「$」をつけることで解決します。

=A$2*C2

この状態でEnterキーを押下し、D2をD9までオートフィルさせると、全てのセルにおいて基準値の「1000」にC列の対応する値を掛けることが出来ます。

 

無事にできましたね!!

以上、Excelの小技でした!!

まぁ、小技って程でもないけど、、、