いまさら聞けないExcelの使い方講座

【Excel】上書きしちゃいけないセルはどれ? 一目で値と数式を常に判別可能にする方法

数式が入力されたセルを強調表示します

数式を値で上書きしても表示だけではわからない

 Excelで運用している管理表では、入力するセルと、数式によって結果が表示されるセルが混在していることがあります。表の構造を理解しているつもりでも、操作に慣れてくると、直接入力したほうが早いと考えて処理してしまうこともあるでしょう。

 しかし、数式が入力されたセルを値で上書きしてしまうと、元の数式は失われます。その場では問題がないように思えても、参照元の内容を変更した時に結果が更新されないといった不整合が生じることがあります。

どのセルに数式が入力されているか見分けられますか?

 周囲のセルから数式をコピーすればよいと思うかもしれませんが、複数のシートやセル範囲を参照する複雑な数式では、コピーした数式が正しいかどうかを判断しにくいこともあります。

 以前の記事では、[ジャンプ]や[数式の表示]を使って数式セルを確認する方法を紹介しました。今回は、ISFORMULA関数と条件付き書式を使い、数式セルを普段から見分けられるようにします。条件付き書式の適用範囲内であれば、後から数式を追加したセルにも自動的に書式が適用されます。

数式セルの上書きに注意

 以下は、[カテゴリー][分類][型番]をプルダウンリストから選択すると、[商品名]と[商品コード]が数式によって自動的に表示される管理表です。

[カテゴリー][分類][型番]の各項目はプルダウンリストから選択できるようになっています(①)
[商品名]には「=XLOOKUP(C15,マスター!$A$2:$A$21,マスター!$B$2:$B$21,"")」といった数式が入力されています(②)
[商品コード]には「=IF(OR(A15="",C15=""),"",SWITCH(A15,"パソコン","PC","周辺機器","PR","その他","OT","")&"-"&C15)」といった数式が入力されています(③)

 商品名は、選択した型番を検索値として、[マスター]シートの一覧表から対応する商品名をXLOOKUP関数で取得しています。商品コードは、SWITCH関数でカテゴリーを対応する略号へ変換し、その略号と型番を連結して生成しています。

 上記の例では、型番の「L600GY」に対応する「Loop Case 600 グレー」が商品名として表示され、カテゴリーの「その他」に対応する「OT」と型番を連結した結果が、商品コードとして表示されています。

 例えば、数式で「OT-L600GY」と表示されている商品コードのセルに、同じ文字列を直接入力しても、見た目は変わりません。しかし、数式は消えているため、その後にカテゴリーや型番を変更しても商品コードは更新されません。数式を失ってから修復するより、どのセルに数式が設定されているのかを明確にしておくほうが安全です。

ISFORMULA関数の動作を確認する

 セルに数式が入力されているかどうかは、ISFORMULA関数で判定できます。引数[参照]には、確認したいセルを指定します。参照先のセルに数式が入力されている場合は「TRUE」、入力されていない場合は「FALSE」と表示されます。

例えば、セルD2に数式が入力されているかどうかを確認するには「=ISFORMULA(D2)」と入力します(④)。セルD2にはXLOOKUP関数の数式が入力されているので、結果は「TRUE」となります(⑤)

 XLOOKUP関数によって商品名が表示されているセルを参照すれば、結果は「TRUE」になります。同じ商品名を直接入力して上書きすると、見た目は同じでも判定結果は「FALSE」に変わります。

 なお、数式の計算結果が空文字列の「""」であっても、セル内に数式が残っている場合、ISFORMULA関数は「TRUE」を返します。画面上では空白に見えるセルも、数式セルとして判定されます。

 ISFORMULA関数の結果を常に表示するための判定列を、表に追加しておく必要はありません。条件付き書式の判定式として利用すれば、元の表の数式セルを色で区別できます。

条件付き書式で数式セルを強調する

 直接入力するセルと数式セルが同じ書式では、数式セルを見分けにくく、誤って上書きしてしまう原因になります。そこで、表のデータ範囲全体に条件付き書式を設定し、数式が入力されているセルだけを薄いグレーで塗りつぶしましょう。

 条件付き書式の判定に使用する数式は「=ISFORMULA(A2)」です。「A2」は選択したセル範囲の左上のセルです。列や行を固定する「$」は付けません。相対参照のまま指定することで、範囲内の各セルに数式が入力されているかどうかが個別に判定されます。

ここでは、表全体(セルA2~E20)を選択します(⑥)。[ホーム]タブ(⑦)の[条件付き書式]-[新しいルール](⑧)をクリックします
[数式を使用して、書式設定するセルを決定](⑨)を選択します。条件式として「=ISFORMULA(A2)」と指定し(⑩)、[書式](⑪)を設定して[OK](⑫)をクリックします
数式が入力されたセルがグレーで塗りつぶされました

 数式が入力されているセルだけが、指定した薄いグレーで塗りつぶされます。塗りつぶされていないセルは、数式が入力されていません。結果を見ると、セルE4とE6には、数式ではなく文字列が直接入力されていることがわかりますね。また、セルE4には本来「OT-B450BL」と表示されるところ、「PR-C100BK」と誤入力されています。

 なお、条件付き書式の適用範囲は、ワークシート全体ではなく、実際に使用する表の範囲に限定しておくといいでしょう。ワークシート全体を対象にすると、表とは関係のない数式セルにも色が付き、条件付き書式の管理もわかりにくくなります。

 数式セルをグレーで表示しておけば、どのセルへ直接入力し、どのセルは数式によって自動表示されているのかをひと目で区別できます。数式セルを絶対に編集してはいけないという意味ではありませんが、入力前に数式セルであることに気付きやすくなります。

 数式の上書きは、エラー値が表示されるとは限りません。正しいように見える値が残ることもあるため、発見が遅れやすいミスです。ISFORMULA関数と条件付き書式を組み合わせて色分けしておくことで、表を更新する際の上書きミスに気付きやすくなります。