アンケート調査票を作っている時の工夫です。例えば,このようなアンケートシートを作ったとします。
回答をあらかじめ集計シートに転記するようにしておくと,アンケートを実施しファイルを収集した後,集計しやすくなります。
例えばQ1の回答は入力用シートのH4セルにありますので,集計用シートのA2セルで参照するように,”=入力用シート!H4” などと設定します。
この時,回答に何も入力されていないと “0” が表示されてしまいますので,未回答の場合と “0” と入力された回答を区別しなければならない時は問題となります。
検索してよく出てくる解決策は,IF文で振り分ける方法です。参照セルがブランクならブランクを返し,ブランクでなければ参照したセルを返すように設定します。
ISBLANK関数を組み合わせる方法もあります。ISBLANK関数は,対象がブランクならTRUE,そうでなければFALSEを返します。
これで十分な場合はそれで良いのですが,面倒な場合も考えられます。
アンケート入力用シートは縦方向に作成されているのに集計用シートは横方向に作成しているため,上記で作成した関数をコピー&ペーストしても相対コピーにならないため,参照セル番地を修正しなければなりません。その時,上記の方法では,2箇所修正しなければなりません。
この参照セル番地の修正手間を1度にするため,また片方の直し忘れを防ぐため,単一のユーザー定義関数を作ってみることにします。
Alt+F11でVBE画面に移動し,標準モジュールを追加してPublic関数を作成します。
ソースコードは以下からコピー&ペーストしてください。
ユーザー定義関数では条件分岐により返す値を変えているだけなので,もとのIF文関数と同じことをやっています。
1 2 3 4 5 6 7 8 9 |
Public Function ISBLANK2(v As Variant) As Variant If v = "" Then ISBLANK2 = "" Else ISBLANK2 = v End If End Function |
作成したISBLANK2というユーザー定義関数を用いると,コピー&ペースト後のセル参照修正は1箇所のみとなります。