【Excel】(時短)申請書等のフォームを簡単に入力するために VLOOKUP関数を使う(Excel方眼紙も楽々対応)

今回ご案内するのは、申請書等のフォームを簡単に入力するために

「適当な連番をつけて、VLOOKUPで、フォームを埋めちゃう」戦法です。

こういう入力フォームへの対応です。

 

このフォームについて言いたいことは、色々あると思います。私もあります。(注1)
こういうのが 生産性を下げているとつくづく思いますが、でも変える働きかけをする体力を常に持ち合わせてはいないのも事実です。
とりあえず、今回は、現状での対応時間を減らすことにします。

こんな風に作ります。

(↓クリックすると拡大します)

(クリックすると拡大します)

作るのは少し、メンドクサイけど、後のちラクです。

 

①名簿をつくっておいて、VLOOUP関数で呼び出します。
②入力フォームの右側に「VLOOKUP関数で呼び出し」をする式を書き
(場合によっては1桁ずつ分割して)
③入力フォームにリンクします。

 

ここでの戦法の工夫点は、
①方眼紙に数字を入れる為の工夫
②金額のような右詰数字を入れる
③テキストボックスを活用して○印をつける
④「Key」に「社員番号」を使わない
といったところです。

 

では、手順です。

1.VLOOKUP関数で呼び出す「作業用のスペース」を作る

入力シートの右側の使っていない場所に、以下のような作業スペースを作ります。

 

※この作業スペースを除いて印刷する部分だけ、印刷範囲の設定をすると良いです。
そして、VLOOKUP関数のキーになる、「連番」を入れる場所」を作ります。
それからVLOOKUPの参照列番号・VLOOKUP式を書いていきます。

2.VLOOKUP以外の式を書き込む

単純にVLOOKUPだけで、済まない以下のようなところはVLOOUP以外に関数を書き込んでいきます。

・「年・月・日」の分離

・社員番号を一桁ずつ分離
・金額の分離

 

①「年・月・日」の分離

 

②社員番号等を一桁ずつ分離
MID関数でセルに一つずつ式を書いていきます。
MIDの「何桁目」の部分の数字を上に書くと、式がコピーでき、かつ分かりやすくシンプルです。

 

③金額の分離
社員番号等と違い右詰で、かつ桁数が金額によって異なるので、
単純にMID関数にするより、もう少し工夫が必要です。以下のようにします。

 

・金額の横にLEN関数で長さ(文字数)を表示
・桁番号を大きい数字から並べる
・もし、桁番号が長さより大きければブランク
 そうでなければ
 桁数-桁番号+1を MiD関数の「何桁目」の数字にする

 

(↓クリックすると拡大します)

3.表示されている文字の上に図形描画で○をつける(準備) 

VLOOKUPで「出張・移動・研修・その他」のいずれかの文字を表示する
②1行下に「出張・移動・研修・その他」それぞれのセルを作り、
③IF関数を使って、いずれかのセルに○がつくようにする。
 (合致しないときは、””ブランク)

 

(↓クリックすると拡大します)

4.表示されている文字の上に図形描画で○をつける(左側の入力フォーマット) 

3で準備が終わったら、左の入力フォーマットに移ります。

 

①図形描画でテキストボックスを作り
②数式バーに「=Z17」のように引用セルを入力する
③「図形の塗りつぶし」と「枠線」をなし にする。
④○のフォントを大きくして、「囲み○」に見えるようにする。
 ※フォントを赤くするなどして「○」を表示すると、より分かりやすいです
⑤「①-④」で作った、図形を複数コピーして、ちょうど良い場所に「○」が表示できるようにする
⑥「⑤」で作った複数の図形の「式」を修正して、それぞれのセルの「○」を参照するようにする

 

(↓クリックすると拡大します)
(末尾の(注2)で、「やりきれない思い」を書いています)

5.それ以外の左側の入力フォームも、右側の数字・文字を表示します。

①表部分でブランクがあると(例えば日付は後で手書きしたいなど)の時は
VLOOKUPで「0」が表示されてしまっているので、
IF関数で、0ならブランク、そうでないなら表示するとします。
(=IF($Z$5=0,””,AB5 ) …この場合は、「日付」が「0」なら「年」はブランク(””)
②ブランクがない(=0表示されない)なら、IF関数なしで、「=Z10」等で大丈夫

 

(↓クリックすると拡大します)

6.補足

KEYに連番を入れる訳
「KEYなんだから社員番号を入れればいいじゃ無いか」と思う方もいらっしゃると思いますが、
社員番号って桁数が多いと覚えられないんですよ。
であれば、適当な連番でも、2~3桁の数字でもいいので、それをキーにした方がラクです。
数人分印刷するなら、印刷が必要な部分に適当な連番数字を入れて、
「数字入れる」→「印刷する」→「数字入れる」→「印刷する」にすれば良いのです。
(10件以上印刷するなら、別のセルに「開始番号」「終了番号」覧を作り、VBAで簡単なコード書いた方がラクかもしれません。)
こういう風に作っておくと「ネ申Excel(またの名をExcel方眼紙)」でも大丈夫です。(注3)

 

(注1)
邪道です、本当はこんな、いわゆる「ネ申Excel」など、止めた方がいいんです。
そういう風に働きかけた方が良いのは分かってますけど。
大きな組織では、変える体力より、本来的な業務に体力を使いたいのです。

 

(注2)
こんな「○」やめた方がいいに決まってます。
大きな問題がなければ、そこの部分は、ドロップダウンで入力するよう働きかけた方がずっといいです。

 

(注3)
「ネ申Excel(またの名をExcel方眼紙)」とは、
手書きイメージをそのままに入力帳票に作っているために、非効率になっているExcelファイルをいいます。
一つずつ、数字を入れる不便さに加え、別のExcelファイルの名簿をコピーしようとすると、
例えば、こんな風になってしまい、「い-!」となることが、しばしば。