ということで、「使える関数」シリーズでは、思いついたら何個でも「これは便利!」という関数を紹介していきたいと思います。
では、さっそくと言いたいところですが、今回はまだ関数そのものの紹介はしません。まず関数を覚える上で覚えておく事があります。それは絶対参照と相対参照です。
関数は、難しい計算や検索に対し、条件(引数といいます。)を指定することによって簡単に値を算出または取得できるという、お得な入れ物です。
この引数に指定するデータ範囲の参照方法に絶対と相対という考え方があります。
まずは相対参照です。相対とは辞書によると向き合っていることとか、他との関係において存在するという意味だそうです。(難しいですね。)
このような表があります。
A地区とB地区の合計を出す場合はセル「C2」にSUM関数を入力します。そのSUM関数の()内に入れるのが引数です。この場合は(A2:B2)というデータ範囲が入ります。

A2とB2が合計されます。
あと2行ありますから、セル「C2」を下方向へ2行コピーします。
そして、2行目「C3」を選択してみてください。先ほど指定したデータ範囲が自動で(A3:B3)になってませんか?

もし、セル「C2」に指定した、SUM関数の引数のデータ範囲が変化せずコピーされていたら、答はみんな同じになってしまいますね。
このように通常Excelでは、関数や数式が入力されたセルをコピーすると、コピー元からの行列の移動数によって自動でデータ範囲が変化します。いわゆる相対的に変化するわけです(えらそに言ってみました)。
今回の例で見ると、一行下にコピーした数式はセル「C2」のデータ範囲(A2:B2)に1行プラスした範囲(A3:B3)に変更されてますね。これが相対参照です。これは普段意識しなくてもExcelが自動で行ってくれます。
ところが相対参照では困る場合があるんです。その例がこちらの図です。
ここでの計算式は、全体に占める各商品の割合を算出するので、A品の場合、A品の在庫数割る合計の在庫数となります。式は図のように入力します。(%表示にしましょう)

できたら、相対参照の時と同様に下方向にコピーしてみましょう。

エラーになりましたね。
これは0除算エラー。つまり、なにも値が入力されていないセルを使って割算しようとしているという意味です。
なぜこうなったか。それは前項で説明した相対参照が関係しています。
通常Excelでは、数式や関数が入力されたセルをコピーすると自動で相対参照になると説明しました。この場合も下の行に向かってコピーをしたので、当然数式は相対的に変化し、A品の数式に1行分プラスした数式になります。
B品の占有率を算出するにはB品の在庫数割る全体の合計、「=B3/B5」です。ですが実際は「=B3/B6」となっており、「B3」は相対で変化して正しいですが、割る側の合計数のセルも1行下のセルへ変更されていしまいました。なにもデータが入力されていないセルを計算に使用してしまっています。これではエラーになりますね。

この場合、全体の合計のセルは相対的に変化しては困ります。絶対に動いてはいけない、そう絶対参照にしなければならないのです。
それではもう一度A品の数式を修正しましょう。
やり方は簡単です。まずは「=B2/」までは同じです。次に絶対参照の対象となるセルの値「B5」を入力した後、「F4」キー(キーボードの上段にF1~F12まであります。)を押します。

そうすると「$B$5」なりませんか?この$マークは固定の意味を表します。これで合計のセルの位置は絶対動かなくなります。

あらためて、下方向へコピーすると、今度はエラーも出ずに正常にコピーされました。

ちなみにB品の数式を確認してみると、しっかり合計セル「$B$5」は固定されてますね。

絶対参照とは、計算の対象となるセルまたは範囲を固定すること、つまり絶対に動かない参照先のことです。
相対参照と絶対参照は関数を使いこなす上で必要な知識ですので、がんばって覚えましょう。
※ちなみに、列を絶対参照にして行を相対参照するなどの複合参照というのもあります。これも後日実践編で説明します。
0 件のコメント:
コメントを投稿