業務引き継ぎ・共同利用を考えてワークシートを作る(EXCEL)

業務引き継ぎ・共同利用を考えてワークシートを作る(EXCEL)
Excelは“業務で使う道具”ですので、業務に差し障りのあるような使い方は避けなければいけません。
一例として、図1の数式を見てください。日付、名前、金額が入力された表で、「9月」に該当するデータの金額だけを合計したものです。計算自体は正しく行われていますが、この数式が何をやっているのか、理解できません。

●第三者でも理解できるシート作りを心掛けましょう

72_image1

図1 数式やマクロは、それを引き継いだ第三者が理解して活用できないものは作るべきではない

この数式は「配列数式」と呼ばれ、数式の先頭と末尾に「{ }」が付いているのが特徴です。概要を説明すると、MONTH関数を使ってA2~A9セルの日付を1つずつ判断して、それが「9」(9月)だった場合に、IF関数でC2~C9セルを取り出し、その結果をSUM関数で合計しています。一般的なExcelの解説書では触れられることが少ないテクニックですが、インターネット上で検索すると、Q&Aサイトなどによく登場します。
こうした数式を、ネットの情報をコピペして深く理解もせずに使うことはもちろん、理解できている人でも、安易に使うのは避けたいものです。そのブックを他人と共有したり、引き継いだりした後にどうなるかを考えるべきです。多くの人はそれを理解できず、また一度数式を編集しようとしたら、元に戻せなくなるでしょう。
というのも配列数式は、再編集した後[Enter]キーを押すだけではエラーになります。配列数式の確定には[Ctrl]+[Shift]+[Enter]キーを押す必要があること、両端の「{ }」は確定時に自動で付くことなど、どれだけの人が知っているでしょうか。
業務に使う道具は引き継がれるものであり、ワークシートやその数式、マクロ(VBA)は、いつかは別の誰かが利用するものになります。だからこそ、第三者が理解できないやり方はしてはいけません。
ケーススタディとして、図1をより分かりやすいシートに作り替えてみよう。図2を見てほしい。

●作業セルを非表示にして隠す

72_image2
図2 E列に作業セルを設けて、E2セルに図のIF関数式を入力。これをE9セルまでコピーして、9月に該当するデータ(金額)だけを取り出した。この作業セルを対象にSUM関数で合計すれば、図1と同じ計算結果が得られる

図2では、E列に途中計算用の“作業セル”を設けて、そこに「9月に該当するデータ」のみを抜き出しています。図1と同じくIF関数とMONTH関数を使っていますが、1行ずつ個々の数式で処理していますので、難しくはありません。E2セルの数式は「A2セルの月が9だったらC2セルを取り出し、そうでなければセルを空欄にする」という意味です。これをE9セルまでコピーすれば、9月の金額だけがE列に表示されます。あとはこれらをSUM関数で合計するだけです。
このように業務で使う場合、平易な数式を使い、計算の過程を明白にすることこそ重要です。その意味で、作業セルは積極的に活用したいものです。作業セルの見栄えが気になるなら、列を非表示にしたり、別シートに移動したりしましょう(図3)。さらに、別の月の合計なども求めやすいように、数式内の「9」の値を別セルに置くこともお勧めします(図4)。再利用性やメンテナンス性を高めるために有効です。
●値を数式に埋め込まない

72_image3

図3 作業セルを見せたくない場合は、列番号の部分を右クリックして、「非表示」を選ぶ。すると列を折り畳んで隠せる

●マクロも業務の道具として、引き継げるように書く
図4再利用性を高めるために、月の数字を指定するためのセルをA11セルに設けた。こうすると、セルの値を変更するだけで、別の月の合計も求められるようになる。数式の中に値を埋め込まず、セルを参照させるのがコツだ