何も入力されていないセルを参照した時に “0” を表示させたくない

アンケート調査票を作っている時の工夫です。例えば,このようなアンケートシートを作ったとします。
1

回答をあらかじめ集計シートに転記するようにしておくと,アンケートを実施しファイルを収集した後,集計しやすくなります。
2

例えばQ1の回答は入力用シートのH4セルにありますので,集計用シートのA2セルで参照するように,”=入力用シート!H4” などと設定します。

この時,回答に何も入力されていないと “0” が表示されてしまいますので,未回答の場合と “0” と入力された回答を区別しなければならない時は問題となります。

検索してよく出てくる解決策は,IF文で振り分ける方法です。参照セルがブランクならブランクを返し,ブランクでなければ参照したセルを返すように設定します。
3

ISBLANK関数を組み合わせる方法もあります。ISBLANK関数は,対象がブランクならTRUE,そうでなければFALSEを返します。
4

これで十分な場合はそれで良いのですが,面倒な場合も考えられます。
アンケート入力用シートは縦方向に作成されているのに集計用シートは横方向に作成しているため,上記で作成した関数をコピー&ペーストしても相対コピーにならないため,参照セル番地を修正しなければなりません。その時,上記の方法では,2箇所修正しなければなりません。
5

この参照セル番地の修正手間を1度にするため,また片方の直し忘れを防ぐため,単一のユーザー定義関数を作ってみることにします。
Alt+F11でVBE画面に移動し,標準モジュールを追加してPublic関数を作成します。
6

ソースコードは以下からコピー&ペーストしてください。
ユーザー定義関数では条件分岐により返す値を変えているだけなので,もとのIF文関数と同じことをやっています。

作成したISBLANK2というユーザー定義関数を用いると,コピー&ペースト後のセル参照修正は1箇所のみとなります。
7

関連記事