Excelの数式や関数では、数値を直接入力するだけでなく、数値が入力されているセル番地を指定する「セル参照」という方法を用います。セル参照には相対参照、絶対参照、複合参照の3種類があり、数式や関数をコピー/貼り付けする際にコピー元のセル番地をそのまま使う(絶対参照)か、コピー元とコピー先のセル番地の差に応じて変換して使う(相対参照)かの違いがあります。
右図の例で説明します。金額欄には単価x数量の計算式、売上比率欄には、商品ごとの売上金額を総売上額で割った売上比率が算出されるというものです。
セルD2には「=B2*C2」(セルB2の値とC2の値の掛け算)という数式が書かれています。
セルD3には同様に「=B3*C3」の数式を置きたいのですが、これをいちいち書かなくても、セルD2に書かれている数式をコピーして、セルD3に貼り付ければ、自動的に行番号の2が3に切り替わった形で貼り付けがされます。行が1つずれたことをExcelが自動認識してこのような処理をしてくれるのです。
またこの例ではふさわしくないのですが、仮に、セルD2の数式をコピーして、セルF2に貼り付けたとすると、セルF2には「=D2*E2」の数式で貼り付けがされます。列が右に2つずれたことをExcelが自動認識してこのような処理をしてくれます。
このように、コピーした関数や数式を別の場所に貼り付けた時に、貼り付けられた場所とコピー元の場所との位置の差を反映して、自動的に変わるセル参照の表記方法を相対参照といいます。
上記例の如く、列名行番号の形でセル参照を表記した場合には、列・行ともに相対参照となります。
【便利知識】
連続するセルのコピーは、ドラッグの操作が便利です。セルD2を選択して、セル枠の右下にマウスをおくと、「+」(オートフィルハンドル)が現れます。その状態でセルD6までドラッグすれば、セルD3からD6まで、纏めていっぺんに数式を入れ込むことができます。
【便利知識】
数式の移動(切り取り&貼り付けやドラッグによる移動)の場合には、相対参照であっても数式内のセル参照は変化しません。
相対参照は表の縦・横の集計などには大変便利なのですが、例えば総合計をもととした比率を求める場合などには適しません。
上記の例では、セルE2には「=D2/$D$6」という数式が書かれています。単純に相対参照の形で「=D2/D6」と書かれていると、ドラッグなどでセルE2の数式をセルE3にコピーすると、セルE3には「=D3/D7」の数式が入り、分母が総合計のセル番地からずれてしまいます。
項目ごとの売上比率などを求める際には、総合計が集計されているセル位置を固定してあげる必要があります。
この例では総合計のセルを列・行ともに絶対参照で表現しています。絶対参照は、列名や行番号の前にドル記号($)を付けます。例えば、$F$10という形です。
絶対参照は、コピー&貼り付けやドラッグなどで他のセルにコピーした時に、貼り付けた位置に関わらず、変化しません。
セルE2をE3からE6までドラッグすれば、E3には「=D3/$D$6」、E4には「=D4/$D$6」という形で、分母が常に総合計を示し、正しく比率を計算させることができるのです。
【便利知識】
通常、Excelで数式や関数が置かれた位置には、結果の値が表示されます。一般に、選択したセル内の数式や関数は、Excel上部の数式欄で確認することになりますが、いちいちセルを選択してひとつずつ確認していくのでは面倒な場合には、数式タブの「数式の表示」をクリックすれば、結果の値ではなく、数式(関数)をそのまま表示させることができます。
もう一度「数式の表示」をクリックすれば、元の結果の値表示に戻ります。
右図のような、今月と前月の比較をするような表を例にとって、複合参照を説明します。
この例では、単価が一定で、売上数量に従って売上金額が変わるというものです。
前の例と同様、今月の金額欄には相対参照で、今月の売上比率の分母には絶対参照で数式が書かれているとすると、それらの式をコピーして、前月の金額欄、売上比率欄に貼り付けても正しく計算はされません。
金額計算の単価はB列に固定すれば、また、売上比率の分母は行番号8に固定すれば、D3からE8までの式を纏めてコピー&貼り付けして、正しく計算させることができるのです。
列だけ固定したければ列名の前にだけ「$」を付け(例 $B3)、行だけ固定したければ行番号の前にだけ「$」を付けます(例:D$8)。このように相対参照と絶対参照が組み合わさっているものを複合参照ともいいます。
つまり、セルD3には「=$B3*C3」、セルE3には「=D3/D$8」を入れて、それぞれ行番号7まで下にドラッグしてコピーし、金額合計欄は「=SUM(D3:D7)」、その比率は100.0%(または「=D8/D$8」)とすれば良いのです。ドラッグすると、セルD4には「=$B4*C4」、セルE4には「=D4/D$8」が入り、以下同様の形で、セルD7には「=$B7*C7」が、セルE7には「=D7/D$8」が入ります。
これらをコピーして、G3からH7までのセルに貼り付ければ、セルG3には「=$B3*F3」が、セルH3には「=G3/G$8」が入り、以下同様の形でセルG7には「=$B7*F7」が、セルH7には「=G7/G$8」が入ります。
複合参照の使用例として、もうひとつ挙げておきます。
縦軸(例:A4~13)に数量を、横軸(例:B3~D3)に単価を規定した売上早見表を想像してください。
B4のセルに「=$A4*B$3」と入力して、縦・横にコピードラッグすれば、B5のセルには「=$A5*B$3」が、C4のセルには「=$A4*C$3」が入って正しい結果が求めることができますね。
セル参照活用の醍醐味は複合参照にあるともいえましょう。
【便利知識】
絶対参照にするために「$」を入力したり、逆に、絶対参照を相対参照に切り替えるために[$]を削除したりするのは面倒です。「F4」キーを押すことで、相対参照と絶対参照が切り替えることができます。
元の表示 | A4 | 列・行とも相対参照 |
「F4」キー押下 | $A$4 | 列・行とも絶対参照 |
「F4」キー押下 | $A4 | 列が絶対参照、行は相対参照 |
「F4」キー押下 | A$4 | 列は相対参照、行が絶対参照 |
「F4」キー押下 | A4 | 列・行とも相対参照に戻る |
「F4」キーを押すタイミングは、通常、
のいずれかです。
【便利知識】
上記の2.でセル参照を選ぶに際しては、いちいちセル参照部分全体をドラッグしなくても、変更したいセル参照上の任意の位置(列名の直前、行番号の直後でも可)にカーサーがあればOKです。