スポンサーリンク
はじめに
Excelの名前定義機能に関する記事のシリーズ。そろそろ締めに掛かろうと思う。
前回の記事で、私は名前定義を使う時は主に、複雑な計算式に対して名前を付ける使い方をすると書いた。
それに対し世間一般において広く認知されている(?)、セル範囲に対し名前定義を設定するやり方については積極活用しなくて良いのか、今回は私見を述べてみたい。
まあ結論を言うと、積極活用しなくて良いと思うんだけどね。実際私は、ほとんど使ってない。
セル範囲に名前定義を設定すると分かりやすいのか
セル範囲に名前定義を設定するというのをおさらいすると、上図のように、$D$2:$D$6とかいった一定のセル範囲に「売上高」のような名前を設定することだ。
では、この機能を覚えたての人はどうするか。
「A1とかの表記じゃ分かりにくいから名前定義を付けてみよう」と、とかくあちこちのセル・セル範囲に対して名前定義を付けてみようとすると思う。私がそうだった。
さて、それでは「売上高」とかの名前定義は本当に、「$D$2:$D$6」とかの表記より分かりやすいだろうか?
根本的な問題として、人間は基本的に、従来より見慣れた表示の方が分かりやすい。
まあそれはともかく、「$D$2:$D$6」とかの表記は、セルのどこからどこの範囲というのを、番号で直接に表記してくれている。
それに対し「売上高」と表記されても、予備知識がなかったら、それってどこのセルのことよと改めて探し確認しないといけない。
どうやって探し確認するかって、名前ボックスを見るとか、ショートカットキー<Ctrl+F3>で確認するわけだけどね。
そして、確認してみたとき、「$D$2:$D$6」のように単純な名前が設定されていれば良いが、可変的なセル範囲に名前定義を設定する方法のところで述べたような
=OFFSET($D$1,1,0,COUNTA($D:$D)-1,1)
なんていう複雑な計算式が設定されていた場合は、その式の設定が正しいのか確認するのも一手間だ。
エラー・無効な名前定義が溜まる
また名前定義は、普通にExcelを使っていれば存在を意識させられることが無いものだ。
だから、$D$2:$D$6というセル範囲に「売上高」という名前定義が設定されていたとしても、それに気付かずD列を丸ごと削除したなんてことになれば、「売上高」という名前定義は単なるエラーの名前定義になってしまう。
そして、エラーとなる名前定義が発生することに対して、特に警告が出るわけでもない。
運用していて数式でエラーが出るとか、意識的に<Ctrl+F3>から名前定義の一覧を呼び出して確認するとかしない限りは、ベテランであっても名前定義のエラーに気付くことはできないだろう。
実際にそうやって気付かず、参照するセル範囲を失ったエラーの名前定義が残ってしまっているExcelブックを、私も幾つも見てきた。
名前定義はきちんとメンテしないと、気付かないうちに、無効なゴミとなる名前定義を溜め込むことにつながるものなのだ。
定数を名前定義するメリットも見当たらない
とにかく名前定義は、それが正しく設定されているのか、確認・検証に多かれ少なかれ手間を取らされるし、不安にさせられる。
以前、0.07という定数に「利率」という名前定義を設定する例なんかも扱った。
しかしこの方法にしたって、どこか適当なセルに0.07と打ち込んでおいて、それを
=マスタ!$A$1
といったように直接的な数式で参照するのと比べて、そう明確なメリットがあるとは思えないのだ。
「利率」という名前定義が数式で使われていて、それって何の数字のことだっけと名前定義の一覧をCtrl+F3とかから呼び出すというのは、そう直感的にできるものではない。
名前定義という初心者向けとは言い難い機能をわざわざ呼び出して設定する手間と、メリットがまるで釣り合っていないと思うのだ。
やっぱり名前定義は複雑な計算式に使おう
ということで、セル範囲とか定数に名前定義を設定するという、世間一般に広く紹介されている方法は、私は使えば使うほどデメリットばかり感じるようになり遠ざかっていった。
そして、前回紹介した、複雑な計算式に名前定義を設定するやり方ばかりに傾倒していった。
もちろんこの方法も、名前定義にどんな計算式が設定されているのかすぐに分かりにくく、確認の手間を取らされるデメリットはある。
しかし前回紹介したような、
長ったらしい計算式は、縦横の幅広いセルにコピペしまくったとき、本当にコピペできてるのか不安になるものであるが、それが「=合計式」といった単純明快な名前の式であれば、コピペが正しくできているのかも容易に確認していける。
「数式が消えたときには『=合計式』」って書いて埋めればいいよ」みたいな感じで、初めての人にも分かりやすく注意書きをしておくこともできる。
そして、多くのセルに対して同じ名前定義を数式使用するからこそ、「#VALUE!」といったエラーや不適切な結果が出たときにも検出しやすい。
・・・などなど、名前定義の持つデメリットを解消して余りあるメリットが、複雑な計算式に名前定義を設定する場合に限っては得られると思うのだ。
スポンサーリンク