━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    ◆◆◆◆ 業務で使うエクセルのお話 ◆◆◆◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

一般にパソコン教室で習うエクセルというものがあります。

これは、エクセルというソフトそのものを使い方を教えています。

エクセル関数も、こういう機能があるものですよと教えています。

しかし、逆に「こんなことがしたい」「こんなことができたら」

というような要求が先にあって、それをエクセルで作成するということは

一般のエクセルの勉強しただけでは、なかなかできません。

つまり、

「一般の本で学ぶエクセル」=「エクセルというソフトの勉強」

なのです。

それでは、業務で使えるエクセルを身に付けるためにはどうしたらいいので

しょうか。

それは、「業務エクセル」というものを学ぶ必要があります。

「えっ、業務エクセルって言葉があるんですか?」

と言われそうですが、これは私が考えた言葉です。

「仕事を円滑にすすめるためのツール」=「業務エクセル」

です。

仕事の中で毎日行うような作業があって、それをデータとして残していき

ながら、たまったデータを解析したり、それから必要な部分だけを抽出して

報告書にしたりするようなこと、これが円滑にできれば作業の効率化と

管理がきちんとできて、人が変わってもトラブルが起きないで、次の仕事の

方向性も見えてくるようなこと、

そんなことに貢献するのが「業務エクセル」です。


---------------------------------
 業務エクセルは「カイゼン」の心
---------------------------------

自分が毎日行っていて、どうも非効率だなあと感じていることがあれば、

その作業の流れを効率化したいと誰もが考えると思います。

もし、非効率だなあと考えていても、まあいいやこれで、と考えるようで

あれば、あなたは日本人の中にある「カイゼン」という意識が低い方かも

しれません。

しかし、不思議なことに私たち日本人(日本に住んでいる外国人の方を

含めて)は、「カイゼン」という意識がとても高いことで有名です。

トップダウンではなく、現場から「カイゼン」を行う心を持っているのは

私たち日本人が世界に誇る伝統かもしれません。


「こうしたら、もっとよくなる」を実現したいと思ったとき、エクセルは

その能力を最大限に発揮してくれるツールです。


-----------------------------
 まずは作業フローを見直す
-----------------------------

自分がいままでやってきた作業フローを、もう一度見直すということが

最初に行うことです。

すぐにパソコンに頼ろうとしてはいけません。

パソコンなんて電気がなくちゃ使えないんだから、それよりも電気がなくて

も使える「カイゼン」を最初に考えてください。

パソコンが得意としていることは、大量のデータを処理して記録に残したり、

間違いを防いだり、きれいな印刷物を作ったりすることです。

もし、無理やりパソコンで何でもしようと考えると、逆に非効率になって

しまうこともあります。


--------------------------------------------
 人間の論理構造とデータの論理構造は異なる
--------------------------------------------

私たちは、パソコンでデータをまとめようとするとき、人間が考えて最適と

思う方法でエクセルを使っています。

業務の流れに沿って、エクセルのシートを作ったり、計算を行ったりして

いると思います。

しかし、業務でデータを入力してデータベースを作って、それを活用して

いこうと考えている場合、この人間に都合がいいフローは、データベースの

フローとは異なることが多いのです。


例えば、いい例が年賀状ソフトです。

年賀状ソフトの場合、人間に都合がいいのは、人別のカードにデータを

入力してゆくやりかたです。自宅や会社の住所もタブの切り替えが簡単に

操作できます。

このカードタイプの入力画面は、ヒューマンインターフェースとしては

とても優秀なのです。

しかし、年賀状ソフトのデータベースの本体は、決してこのようなカード

タイプではないのです。

年賀状ソフトでは「一覧モード」でその一部を見ることができます。

データベースを構築する場合に、一番大切なことは、

「1つの情報は、必ず1行内に横並びで置く」

ということです。

1つの情報が2行に渡って存在するということは、人間の論理では正しく

ても、データの論理では絶対に×なのです。

ですから、エクセルでデータベースを作成する場合も、

「1データ」→「1行」という鉄則があります。


-------------------------------------------
 ヒューマンインターフェースは別に作成する
-------------------------------------------

データベースの論理でエクセルにデータを入力することは、私たちには

とても疲れることです。何しろ、画面の横サイズは限られているので

横方向にデータを入力してゆくと、横スクロールが必要になり、作業は

とても非効率になります。

そこで、人間が入力しやすい画面は別に作成したほうがいいのです。

それは、一般には「入力フォーム」と呼ばれており、多くのソフトでは

この入力フォームを使って、データベースへのデータの登録を行って

います。


--------------------------------------------------------
 入力フォームからデータベースにデータを移すのがマクロ
--------------------------------------------------------

入力したデータは、人間にはわかりやすくても、データベースの形式に

なっていないので、このデータをデータベースに移行する必要があります。

このデータベースへの移行は手作業で行うととても大変ですし、時間も

かかりますので、「エクセルのマクロ機能」を使って行います。

エクセルのマクロは、決して難しいものではなく、自分で行う作業をマクロ

に記録して、それをボタン一つで行うようにするだけです。

一般に「マクロ」というと「VBA」とすぐに考えてしまう人は、

難しく考え過ぎです。本来マクロはVBAを勉強しなくても、高度な作業が

できるように開発された「手動録音機」みたいなものです。

録音機で録音したプログラムを、再生すれば、プログラムが実行されるだけ

と考えてください。


---------------------------------------------
 データベースを処理するためのエクセル関数
---------------------------------------------

データベースの入力ができても、それをどのように処理させて、目的にあう

システムを作ってゆくかは、あなたの目的次第です。

この段階で一番活躍するのは、エクセルの関数です。

恐らく、業務のフローは1種類ではなく、ケースバイケースで違ってくる

ようなこともあるでしょう。

このように分岐する業務構造をもつような場合に頻繁につかう関数が

「IF関数」です。

------------
 IF関数
------------

通常、IF関数は、IF(A3>=10,"○","×") なんて使い方をしますが、

業務に使うIF関数は、何重にも入れ子状態になることがあります。

これは、エクセルの関数には、複数分岐が同時に行える関数が用意されて

いないためです。

VBAなどでは、「SELECT CASE」などのコマンドがあるので複数の分岐が

一度にできますが、エクセルの関数の場合は、IF関数を何重にも入れ子する

ことで複数分岐を可能にしています。

さらに、ANDやORなどの論理関数などを組み合わせることで、関数自体は

複雑にはなるのですが、ほとんどの論理処理ができるようになっています。


私がよく使用しているIF関数は以下のようなものです。

IF(B3="","",A3/B3)       B3で割り算する場合

IF(OR(A3="",B3=""),"",A3*B3)  A3,B3のどちらかに何も入っていない
                ときは計算をしない  

IF(AND(A3<>"",B3<>""),A3*B3,0) A3,B3の両方に何かが入って入れば
                計算し、そうでないときは0を入れる


---------------
 VLOOKUP関数
---------------

データベースの中から、1つのデータを検索する関数もあります。

私がよく使うのが、検索関数のVLOOKUP関数です。

VLOOKUP関数は、キーになる文字をデータベースの1つのフィールドから

探して、そのキーに合致する行の他のフィールドの値を抽出するということ

を行うための関数です。

※フィールドというのは、データベースでよく使われる言葉ですが、

データベースの表があった場合、列名に相当するものと考えてください。


同じキーが複数ある場合は、最初に見つけたキーの行から優先的にデータ

を抽出します。

同じキーの行をすべて探して、そこからデータをすべて抽出したいという

場合もあるかと思いますが、それはVLOOKUP関数ではできません。

あくまでも、1つのデータのみを検索するという場合に使います。


------------------------------
 DSUM・DAVERAGE・DCOUNT関数
------------------------------

データベースの1つのフィールドの中に、同じ言葉が何個あるかを知りたい

という場合があります。

もしくは、その同じ言葉がある行の別のフィールドの値をすべて合計したい

という場合があります。

もしくは、数値がある値以上のものだけを合計したり、その個数を知りたい

という場合もあります。


このようなときに使うのが、データベース関数のDCOUNTやDSUMです。


簡単にいえば、エクセルの「オートフィルタ」の機能で抽出したデータに

対して個数や合計を求めるというのと似ています。

(ちなみにオートフィルタで抽出したデータを処理する場合はSUBTOTALと

いう関数を使います)


このデータべース関数のDCOUNTやDSUMなどの関数は、使い方が特殊で理解

しずらい関数の一つです。

特に、引数で要求される「クリテリア(Critera)」という言葉の意味が

よくわからない人も多いのではないでしょうか。

Criteraというのは、Criterionの複数形で、判断や評価などのための基準

という意味です。

例えば、

┌────┬────┬────┐
│PC  │価格  │利益 │
├────┼────┼────┤
│NEC  │200000 │85000  │
├────┼────┼────┤
│SONY │250000 │90000 │
├────┼────┼────┤
│FUJITSU │180000 │75000 │
├────┼────┼────┤
│NEC   │170000 │60000 │
├────┼────┼────┤
│SONY  │190000 │82000 │
└────┴────┴────┘

というようなデータベースがあったとします。

この場合、データベース領域はこの表全部になります。

このデータベースで、NECだけの価格の合計が知りたいという場合は、

DSUM関数を使うのですが、この関数を使うためにはあらかじめ「Critria」

と呼ばれる条件が書かれた表を作る必要があります。

┌────┐
│PC  │
├────┤
│NEC  │
└────┘

という表を作るんですね。これがCriteriaと呼ばれるものです。

このCriteriaはフィールド名とその中のキーとなるデータで構成します。

┌────┐
│価格  │
├────┤
│<200000 │
└────┘

なんてように、不等号記号で条件を表わしても構いません。

大切なことは、条件づけを行うフィールド名とセットで書くという部分です。

DSUM、DAVERAGE、DCOUNTなどは、いずれも以下のような引数をとります。


1.データベースセル範囲

2.フィールド(計算をしたいフィールド名のセル番地)

3.Criteraのセル範囲


DSUMは条件にあうデータの合計、

DAVERAGEは条件にあうデータの平均

DCOUNTは条件にあうデータの個数

をそれぞれ求める関数です。


さらに、Critriaは上記のように1つだけでなく、複数個のフィールドに対する
条件を並べて書くことも可能です。

┌────┬────┐
│価格  │利益 │
├────┼────┤
│<200000 │>=70000 │
└────┴────┘

さらに同じフィールドの条件を増やしたい場合は

┌────┬────┐
│価格  │価格 │
├────┼────┤
│<200000 │>=180000│
└────┴────┘

と書くと、[<200000] かつ [>=180000]となり、

┌────┐
│価格  │
├────┤
│>200000 │
├────┤
│<190000 │
└────┘

と書くと、[>200000] または [<190000]という意味になります。

いずれにしても、このCriteriaという条件表が別途いることが、この関数の

特徴です。


-------------
 情報関数
-------------

一般のエクセルの勉強では、ほとんどお目にかかれないのが情報関数です。

情報関数はそのセルの状態を表す関数なので、単独で使用することはあり

ませんが、業務システムを作る場合には必須の関数です。

たとえば、計算にエラーが出たような場合に、何らかの警告画面を出したい

というような場合や、

セルに何も入力されていない状態かどうかをチェックするような場合や、

セルに入力されているエラーの種類を認識させたい場合や、

セルに文字が入力されているか、数値が入力されているかを知りたい場合

などに使わる関数です。

この情報関数とIF関数を組み合わせて、表示を変えるということが

よく行われていることです。


--------------------------------------
 業務エクセルこそ、本物のツールです
--------------------------------------

最近は、エクセルはそこそこできるんだけど・・・

という人も増えてきていますが、何かの業務を効率化するためのシステムを

エクセルで組めるという人はまだまだ少ないようです。

自分には難しすぎるので、プロの人にアクセスやVBAで組んでもらえば

いいやと考えている人もいますが、エクセルで組めばデータがすべて見える

ので、いざというときにも自分で修正できますし、バージョンアップで

動かなくなったというようなこともありません。


確かに簡単ではないのですが、自分の業務を効率化して、少しでも無駄な

時間を減らして、本来の仕事を行うために、「業務エクセル」をマスター

してはいかがでしょうか。


2008/5/18 第179号 反・資格宣言 copyright(c)NokoTech Lab. All Right Reserved.