「エクセルで絶対参照の方法が分からない!」
「相対参照を一括で絶対参照に変換できないかな」
エクセルを使い始めると「絶対参照」や「相対参照」といった参照を表す言葉に出会います。
なんだか小難しい名前ですが、それほど難しいものではありません。
ここでは絶対参照について、相対参照との違いや使い方を解説しています。
初心者でも分かりやすく基本と応用を解説しているので、ぜひ読んでみてください。
この記事を読んで、エクセルでの参照を理解しマスターしましょう!
1.エクセルの絶対参照とは?
「絶対参照」――一見とっつきにくい難しい用語に見えますね。
でも意味と方法を知れば、エクセルを使う人にとってとても身近な言葉になりますよ。
「絶対参照」とは、ある決まったセルをどのセルからでも参照したい場合に使う参照方法です。
たとえば、A列の2行目(A2)の式でA1を使っていたとします。
このA1は参照元(上ではA列の2行目)がどのセルであっても、「絶対に参照したい」セルです。
だから参照元がG列の100行目(G100)であっても、AA列の287行目(AA287)であっても、そのセルの中の式ではA1の値を絶対参照で使用します。
なぜこんなことを言うのかというと、エクセルでは普通に式を書いて、コピーやオートフィルをすると式の内容は「相対参照」になるからです。
「相対参照」は絶対参照と対になる用語で、「絶対に決まったセルを参照する」のが絶対参照ならば、相対参照は「参照元のセルによって参照するセルが変わる」参照方法です。
ではこれを踏まえて、絶対参照と相対参照を詳しく見ていきましょう。
1-1.相対参照との違い
絶対参照は「絶対に決まったセルを参照」します。
対して相対参照は「参照元のセルによって参照するセルが変化」します。
下の図をご覧ください。
縦の表と横の表を用意しました。
縦の表の結果列には右隣の式が入っています。
横の表の結果行には下の式が入っています。
これは一番目の式(B2とF2)を入力してから、式をコピーして他のセルに貼りつけました。
太字の部分を見ると、一つセルがずれるごとに参照セルも変化していますね。
縦の表では行が変わり、横の表では列が変わっています。
コピー元の式と参照部分が変わっているため、これは「相対参照」です。
式をコピーするとエクセルが補助して、自動的に相対参照で参照先を変更してくれます。
便利ですね。
でも参照先は変えずに結果だけ変えたい場合がありますよね。
上図を例にすると、縦の表でも横の表でも、参照先は必ずA2を見てほしいような場合。
つまり式は「=A2+100」が全ての結果行に入ります。
そのような固定したセルを参照したいときに使う参照方法が「絶対参照」です。
再三になりますが「相対参照」は、セルによって参照先も変わってほしい場合に使います。
相対参照と絶対参照、違いは分かったでしょうか。
相対参照は知らずに使っていたのではないでしょうか。
相対参照が分からない場合は、先ほどの図を実際にエクセルに作成してみると「そういうことか」と理解できるはずです。
2.絶対参照の使い方
それでは絶対参照を使ってみましょう。
エクセルの基本は相対参照です。
絶対参照は相対参照をちょっと工夫して使う参照方法と覚えるとよいでしょう。
なにせ相対参照に、「ある記号」を足すだけなのですから。
それでは身構えずに、絶対参照の使い方を覚えていきましょう。
2-1.「$」を使って絶対参照をする
ここに「=A2+100」という式があります。
「100」はただの数値ですので、他のセルを参照しているのは「A2」ですね?
「A2」のままだと相対参照です。他のセルにコピーしたら、コピー先のセルに合わせて「A2」ではなくなってしまいます。
この「A2」を絶対参照に変える場合、「$(ドルマーク)」を使用します。
「$」は大体キーボードの数字の「4」をShiftキーと一緒に押せば出てきますが、キーボードの配列が違うこともありますので、その場合は探してみてください。
探すのが面倒だと言う人は、この後「2-3.絶対参照のショートカット」で紹介する方法を覚えてください。
さて、では「$」をどう使えば絶対参照になるでしょうか。
簡単です。
「絶対に変更したくない(絶対参照したい)列番号または行番号の前に$をつける」だけです。
先ほどの例の「A2」の場合、どのセルからもこのセルを参照したいので、「$A$2」になります。
「$A$2」の意味は「絶対にA列の2行目を参照する」です。
下図はどの結果も数値Aは「A2」を参照するようにしています。
この表もまずC2に式を入れてからコピーして、他の行に貼りつけています。
絶対参照はセルによって参照先が変わらないため、結果列には「=$A$2+Bn」が入っています。
2-2.列や行だけを絶対参照にする複合参照を知る
「$」のつけ方を「絶対に変更したくない(絶対参照したい)列番号または行番号の前に$をつける」と回りくどく言ったのにはわけがあります。
実は絶対参照には、「絶対列参照」と「絶対行参照」があるからです。
字面からして分かる通り、「絶対列参照」は「絶対に列だけは固定したい」場合に使い、「絶対行参照」は「絶対に行だけは固定したい」場合に使います。
「$A$2」という絶対参照があるとします。
たとえば列だけ、この場合A列は変えたくないけど行数は変更したいときは絶対列参照を使います。
つまり「$A」ではあるけど「$2」でなくてよい。
このような場合、行数は可変でいいので行番号から「$」を取り除き、「$A2」と表します。
絶対行参照も同様で、行は変更したくないけど列は可変でいい場合に使用します。
「$A$2」は「A$2」になります。
絶対列参照や絶対行参照は、絶対参照と相対参照を組み合わせた参照方法です。
これを「複合参照」と呼びます。
2-3.絶対参照のショートカット
絶対参照の「$」はセルに式を書く際に直接挿入するか、とりあえず式を書いてから数式バーで変更することができます。
もちろんその手順で間違いありませんが、もっと簡単な方法があります。
それがショートカット「F4」を使う方法です。
「$」をつける場合、下の図のようにセル内の絶対参照したい参照に直接「$」を書くこともできますが、この状態で「F4」を押してみてください。
このように参照が自動で選択されて、絶対参照に切り替わります。
そのままもう一度「F4」を押すと、今度は絶対行参照に変わります。
さらにもう一度押すと、絶対列参照に変わります。
もう一度押すと、相対参照に戻ります。
「F4」を押すことで、相対参照→絶対参照→絶対行参照→絶対列参照→相対参照…と切り替わります。
このショートカットを覚えておくととっても便利ですよ。
3.絶対参照のトラブル対処法
ここまで絶対参照の意味や使い方を解説してきました。
これだけでも随分作業ははかどるのではないでしょうか。
ここでは絶対参照を使いたいときのトラブルについて、その理由や解決方法をご紹介します。
3-1.ショートカットを押しても絶対参照にならない場合
ショートカット「F4」を押しても、絶対参照にならない場合があります。
こんなときは、まず式内にカーソルがあるか確認しましょう。
セルをただアクティブにして「F4」を押しても、絶対参照にはなりません。
きちんとセル内の式や数式バーの式にカーソルが当たっている必要があります。
一度入力した式にカーソルを当てる方法が分からないという場合、式を入力したセルを選択してダブルクリックか「F2」を押しましょう。
そうすることでセルが編集モードになります。
3-2.相対参照を一括で絶対参照にしたい場合
たくさんの式があり、そのすべてが相対参照だが、全て絶対参照に変更したい場合、一つずつ選択して「$」を挿入していくのは面倒で時間がかかりますよね。
この場合、マクロを使って解決します。
マクロに慣れていなければ難しそうに思うかもしれませんが、この際マクロにも触れてみましょう。
下図の結果列に入っている式を絶対参照に一括で変換します。
まずマクロを使うために[開発]タブを開いてください。
[開発]タブが表示されていない場合、次の手順でタブを表示してください。
①[ファイル]タブの[オプション]を選択します。
②「リボンのユーザー設定」を開きます。
③メインタブの下の方に「開発」があるので、そのチェックボックスをオンにします。
④「OK」を押し、戻ると[開発]タブが表示されています。
タブの中の[挿入]を開き、「ボタン(フォームコントロール)」をクリックします。
カーソルが十字マークになるので、そのまま表内のどこでもいいので(後で消すので文字にかぶっても大丈夫です。)図のように四角を作成します。
ボタンを作成するとすぐに「マクロ登録」という画面が開きます。
マクロ名はそのままでもいいので、右側の「新規作成」ボタンをクリックします。
するとコード入力画面が表示され、すでに以下のような文字が入っています。
この「Sub~」と「End Sub」の間に処理内容を入力します。
処理内容は以下をコピーして貼り付けてください。
Dim selectCell As Range '選択セルを範囲指定宣言
For Each selectCell In Selection '選択範囲のセルを一つずつ処理していく
If selectCell.HasFormula Then '選択範囲の中の処理するセルが入力されているならば次の処理を行う
selectCell.Formula = Application.ConvertFormula(Formula:=selectCell.Formula, _
fromReferenceStyle:=xlA1, toAbsolute:=xlAbsolute) '参照部分を絶対参照に変更する処理
End If
Next
“
できたらコード画面からエクセル表に戻りましょう。
そして絶対参照にしたいセルを選択します。
選択できれば、作成したボタンを押しましょう。
すると絶対参照に変わります。
最後に先ほど書いたコードを全て消してから、ボタンを右クリックしてバックスペースやデリートでボタンを消します。
コードが残ったままだと、ボタンを消したとしてもマクロを含むファイルと認識され、保存時に拡張子を変更するようにポップアップが表示されるので、マクロを含む拡張子にしたくない場合はきちんとコードを消しましょう。
4.まとめ
エクセルの絶対参照、いかがでしたか?
エクセルの参照は、この記事に書いた参照が基本です。
あとはシート指定や関数に組み込むことで、さらに参照を使いこなせます。
最後のマクロを使用する変換方法もどうだったでしょうか。
処理内容自体には触れませんでしたが、短くてそれほど複雑ではありません。
マクロは使えれば便利ですし、作業の幅が広がるため、エクセルユーザーならば活用してほしい機能です。
機会があればぜひ使ってみてくださいね。
コメント