Excelの関数をデータベースで使う

記事
IT・テクノロジー
Accessで介護支援記録管理システムを作った理由-2

前回のブログでは、一つのExcelブックに対し、ブック共有機能を使って複数のPCから編集を行おうとすると、データベースに対しては不向きであるという話をしました。
ブック共有機能は、設定が面倒など他にもデメリットがあり、別の使い道に関してもあまり実用的ではないように思います。

しかし、敢えてブック共有などせずとも、読み取り専用モードで開けば閲覧はできるので、入力者が少ない施設なら、Excelで介護支援記録管理システムを作ってみるのも一考です。

以前のブログで、Excelのデータベース機能を使って、必要なデータを入力したテーブルの中から該当するデータを抜き出し、個別の書類を作成するシステムについて触れました。
具体的には、一つのワークシート上に入力用のテーブルを作って、VLOOKUPやINDEX、MATCHなどの関数を使い、別のワークシート上に抽出結果などを表示させるやり方です。

ちなみに、VBAを使って抽出を行う方法もありますが、その方法を使わなくても、私は関数計算で十分と考えています。
その理由は、将来、改良等の必要性が生じたとき、VBAを変えることは後任者にとってハードルが高くなると考えたからです。
また、マクロ記録を使ってVBAを生成させる方法もありますが、後で改良が必要となったとき、コードが複雑かつ属人的な操作の流れが分かりにくくなりやすいため、こちらは最初からからNGにしていました。

私がExcelで作成した簡単なデータベースの例ですが、勤務していた施設の入居者から預かった現金に関し、その管理を日々行っていくものがあります。
まず一つのワークシートに毎日の現金出納データを記録するテーブルを置いて、ここから簡単に入出金を確認する帳票が作成できるようにしました。
さらに、入居者のご家族に3か月毎の収支明細を報告するため、報告月を決められたセルに入力するだけで、3か月分のデータを自動的に抜き出して収支明細書が完成するシートも加えました。
これによって、通常なら必要とするExcel操作を省力化したわけです。

これと同様の方法で、少し内部計算は複雑になるものの、介護支援の記録を管理するシステムをある程度まで作り上げることはできそうです。
4W1Hで構成された記録データの中から、例えば日誌用として、当日の入居者の記録を日付で抽出させる機能などは簡単です。

しかし、抽出条件ごとに結果表示用のワークシートが必要なため、シートが増えすぎると全体が分かりにくくなり、さらに複雑な抽出条件では関数も対応しきれないなど、問題も生じてきます。
こうなると、職員が記録データの中からきめ細かな検索を行いたい場合は、直接、テーブルに対してフィルター操作をしたほうが分かりやすく、システム開発の目的の一つである省力化からは離れてしまいます。
システムを導入してもあまり省力化できなければ、操作の点で、逆に心理的負担が増してしまうことになりかねません。

それならやはり、関数を使うような裏技ではなく、ExcelのユーザーフォームやVBAを使って操作の簡便性、効率性を向上させる方法が良いのでしょうか。
これに対する答えは次回に譲ります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す