Excelで介護支援記録管理システムを作ってみる~8日目
前回のブログを踏まえながら、まずは日誌を作成していくことにします。
システムの根幹である介護支援記録のデータを格納した記録テーブルは、そのままで日誌とはなりにくいため、ブックの中に日誌の体裁(フォーマット)を備えたシートを作成し印刷もできるようにするのが良いと思われます。
日誌の体裁は、通常、①表題と日付、②施設内各部署での確認欄、その下に③当日の利用者の入退所・入退院等の動き、施設内でのイベント等の結果、会議等の職員の動きをまとめた部分、さらにその下には、④特定の利用者に対する介護支援内容を時系列順にまとめた記録部分とで構成されます。
しかし実際には、①~③の部分はWordやExcelを使って別に作成し、④の部分はシステムのシート上に作成し、それぞれ印刷したものを綴じ合わせて日誌の形とするのが一般的かと思います。
この理由は、④の部分は、介護支援記録管理システムから随時、データとして取り出すことができるのに対し、①~③の部分は日々の記録として保存しておく必要があるからです。
そこで「日誌」と名付けたシート上に作成した④の部分は、以下の画像のようなフォーマットにしました。
この表に表示できる記録データの数は10個に限っていますが、それぞれの施設の特性に合わせて1日あたりの最大数を超えないよう設定します。
その上で重要となるポイントは、上部の日付欄に日付を入力すれば、記録テーブルでフィルター操作を行わずとも、この表の中に当該日の記録データ(レコード)が表示されるようにすることです。こうすれば使うシートは一つで済んでしまいます。
フォーマットが固まったので、次はこれを実現する内部処理方法を考えます。
その方法として、関数(数式)を使った内部処理を行うわけですが、その前段としてまず記録テーブル内のデータ一つひとつに対する判断処理が必要となります。
具体的には、いわゆる"フラグを立てる"という処理なのですが、日付欄に入力した日付と、各記録データの日付情報が一致していれば、そのデータ内に追加した列の中に数値の"1"を出力するという処理です。
ただ、元の記録テーブルにこの処理部分を付け加えるわけにはいきませんので、記録テーブルとリンクしたもう一つ別のテーブルを作り、これに判断処理の部分を加えることにしました。
そこで3回前の投稿において使用したパワークエリの機能をここでも活用することにします。
記録テーブル内のどこかのセルをクリックした上で、メニューからデータ→テーブルまたは範囲からをクリックし、記録テーブルの「Power Query エディター」を起動させます。
さらにエディタのメニューから列の追加をクリックし以下の画像に進むます。
ここで追加する列として「条件列」を選びクリックすると、下の画像のように設定ウィンドウが開いたので、新しい列名を一応「日付フラグ」としてから、列名は"日付"、演算子は"指定の値に等しい"、値はとりあえず"日誌!$C$2"、出力は"1"それ以外の場合は"0"と入れてみます。
すると残念なことに、値について「DateTime値を入力します」とエラーが表示されてしまいました。
諦めずに、条件列の追加ではなくカスタム列の追加でもトライしてみました。
カスタム列の式は通常のExcel関数式ではなく、下図のとおり「Power Query M 数式言語」と呼ばれる関数型のプログラミング言語で記述する必要があるため、IF関数と同等の処理を行うIF式を使い設定しようとしましたが、やはりエラーとなってしまいます。
どうやら式の中で、テーブルの外部にあるセルの値を参照することはできない仕様となっているようです。
そこで仕方なく、取り敢えずカスタム列の追加は諦め、そのままの形のクエリを作成することにしました。メニューのホーム→閉じて読み込むをクリックし、新しいシートの中に生成されたテーブルが以下の画像となります。なお、セルの書式設定を行って見やすく表示されるようにし、テーブル名を"検索用テーブル"、シート名も"検索用データ"に変えておきます。
なお、今回トライした「Power Query M 数式言語」ですが、パワークエリを活用する上で絶対憶えておく必要はなく、その都度、必要な処理に関してリファレンス等で調べなから使ってみて十分な気がします。
さて、このクエリで壁を乗り越える方法については次回に譲ることにします。
>次回の投稿を読む