実務で利用するワークシートでは数式が複雑になることが少なくありません。
複雑な数式をデバッグをする際、どんな操作をしてらっしゃいますか?
2002以降のExcelなら[数式の検証]ダイアログを使ってデバッグするという方法もありますが、私個人的としては[数式の検証]ダイアログよりも、これからご紹介する方法のほうが使いやすいと感じています。
このサイトではこれまで、
といったネタをご紹介してきましたが、これらのネタの中で利用した[F9]キーを使ってデバッグをすることができるのです。
数式のデバッグを行う手順
具体的には以下のような操作を繰り返します。結果を確認したい数式の一部を選択
↓
[F9]キーを押す
↓
内容を確認したら[Esc]キを押す
数式のデバッグを行う具体例
▼サンプルファイル(003375.xls 39KByte)ダウンロード
実際に上記の方法を使い、サンプルファイルのC2セルで数式のデバッグを行う様子を確認してみましょう。
数式で行いたいこと
サンプルファイルでは、得点が平均を超えていたら「合格」、そうでなければ「不合格」という文字列を表示させようとしています。
実際の平均点は「73.6」なので、74点以上の人には「合格」と表示されるべきなのですが、そうはなっていません。
数式のどこかに間違いがあるはずですから修正しなければいけません。
その手順です。
(なお、この程度のバグの場合、[F9]キーを使いこなせるレベルの方なら、[F9]キーを使わなくても間違いに気づくはずですが、[F9]キーの説明ということでご了承ください。)
数式の一部を選択してF9
まず下図のように数式の一部
AVERAGE($B$3:$B$6)
だけを選択します。
ここで[F9]キーを押すと、選択されていた
AVERAGE($B$3:$B$6)
だけが実行され下図のような状態となります。
「79.5」という数値が表示されています。
これは[F9]キーを押す前に選択されていた
AVERAGE($B$3:$B$6)
だけが計算された結果です。
本当の平均点「73.6」とは異なった値となっているので、このAVERAGE関数のどこかに間違いがあると推測できます。
引数だけを選択してF9
ここで[Esc]キーを押して、数式を元の
=IF(B2>AVERAGE($B$3:$B$6),"合格","不合格")
に戻します。
次に、下図のようにAVERAGE関数の引数
$B$3:$B$6
だけを選択して、
[F9]キーを押します。
すると今度は下図のような状態となります。
選択していた引数の
$B$3:$B$6
が、
{78;79;80;81}
になったのです。
これは、
$B$3:$B$6
というセル参照が実行され、実際セルに入力されているデータになった状態です。
「$B$3:$B$6」セルには
78
79
80
81
という数値が含まれていることを示しています。
実際の値と見比べる
ここで、実際のB2:B6セルの値とよく見比べてみます。
実際には
50
78
79
80
81
という数値入力されていますから、[F9]キーで実行した場合
{78;79;80;81}
ではなく
{50;78;79;80;81}
にならなければいけません。
Escで数式をもとに戻す
[Esc]キーを押して数式を元に戻すと、
$B$3:$B$6
となっています。
本当は
$B$2:$B$6
がAVERAGE関数の引数として指定されていなければならないところが
$B$3:$B$6
となってしまっています。
B2セルからB6セルまでを指定しなければならないのに
B3セルからしか指定されていません。
何が間違っていたのか
つまり、AVERAGE関数の引数が間違っていたために、AVERAGE関数の結果が誤った値となり、その結果IF関数による「合格」「不合格」表示も間違ってしまったというわけです。
[F9]キーを使ったデバッグは以上のような手順で行います。
プログラムでデバッグを行う場合も、途中まで実行したときの変数の値を確認したりといったことをしますが、Excelの数式で同様のことをするには上記のように、数式の一部を選択して[F9]キーで実行、[Esc]キーで元の数式に戻すという操作を行うわけです。
複雑な数式の修正などで苦労しているという方は、是非お試しください。
数式の一部分を選択する際には、以前ご紹介した関数のヒントも合わせて使うと便利だと思います。
- Newer:ローンシュミレーション(シミュレーション)をしたい
- Older:常にテキストのみ貼り付けるように
Home » Excel(エクセル)の関数・数式の使い方 » 数式のデバッグ方法−F9キー・Escキー