平成16年10月24日(日):初稿 平成17年 1月 8日(土):更新 |
ID項目の重要性 私の事務所の事件処理データのデータベース化第一歩は顧客簿と事件簿です。 尚、顧客簿一式サンプルファイルをアップしておきましたのでご参考にして頂ければ幸いです。 この顧客簿と事件簿の2つのファイルが、人間で言えば二本足、車で言えば両輪となって、事務所全体の事件処理データを支えます。 この2つのファイルの項目で核となるべき重要なものが、ID項目で、顧客簿で顧客ID、事件簿で事件IDという項目です。 顧客簿、事件簿入力後に作成する通知書、訴状・破産宣告申立書等各種申立書、業務日誌、電話記録等全てのファイルに事件ID項目をつけて、顧客名を入れると表引きによって事件IDデータを自動的に入力できるように設定しています。 この事件ID項目にデータを入力しておけば、後に全ての事件が事件毎に並べ替えが出来るようになり大変便利になります。 IDデータ数字の考え方 先ずデータ型ですが、これは後の並べ替え等多機能を生かすため当然数値になります。 次にどのような数字にするかですが、普通、IDデータは連番で入れることが多いようです。 しかし、私は色々考えた末、受付日データと連番を兼ねることにしました。 具体的には、2004年10月24日に来た1番目の顧客は 2004102401 2番目の顧客は 2004102402 となり、99番目の顧客は、 2004102499 で、ここで打ち止めです。 一応99人までの顧客が来ても大丈夫なように設定していますが、当事務所のような零細事務所に1日99人も顧客が来るなどあり得ません。見栄をはって99人まで収容できるようにしていますが、本来は9人までで十分です。 尚、受付日とIDを兼ねたことによって、IDを見れば何時頃来たお客様か解り便利で、この方法で正解だったと思っています。 IDデータ自動入力方法 これは当然ながら桐関数を使用して全て自動的に入力されます。 顧客ID自動入力の関数は、色々考えた末、以下の通りに設定しています。 #条件選択(#切り捨て((#直前値([顧客ID],0)÷100),0)<>#数値(#文字列(#西暦年(#年月日))+#文字列(#月(#年月日),2)+#文字列(#日(#年月日),2)),#数値(#文字列(#西暦年(#年月日))+#文字列(#月(#年月日),2)+#文字列(#日(#年月日),2) +"01"),1,#直前値 ([顧客ID],1)+1) この関数設定の基本は宮城有道さんにご教示頂き、その後、ハーブさんこと伊勢さんのアイデア等をお借りして完成しました。 以下、その内容を解説します。 理解しやすいように改行を入れて関数式を並べましたが、実際は、上記の通り、データは改行がありません。 #条件選択( #切り捨て((#直前値([顧客ID],0)÷100),0) <>#数値(#文字列(#西暦年(#年月日)) +#文字列(#月(#年月日),2)+ #文字列(#日(#年月日),2)), #数値(#文字列(#西暦年(#年月日)) +#文字列(#月(#年月日),2) +#文字列(#日(#年月日),2) +"01"), 1, #直前値 ([顧客ID],1)+1 ) 以下、解説です。 #直前値([顧客ID],0)÷100),0) で前行の日付表示例えば 20040331 を表示します。 <>は、データが一致しないと言う意味です。≠と記載しても同じです。 #文字列(#西暦年(#年月日)) は、入力した日の西暦年を文字列で取り出します。 本日の場合2004となります。 以下同様に #文字列(#月(#年月日),2) は、入力した日の月を、2桁の文字列で取り出します。本日の場合04となります。 #文字列(#日(#年月日),2) は、入力した日の日を、2桁の文字列で取り出します。本日の場合01となります。 その結果 #数値(#文字列(#西暦年(#年月日))+#文字列(#月(#年月日),2)+#文字列(#日(#年月日),2)) は、 "2004"+"04"+"01" となります。" "は文字列を意味します。このデータは文字列の20040401 となり、これが#数値で、数値型に変換されます。 以上をまとめた #切り捨て((#直前値([顧客ID],0)÷100),0) <>#数値(#文字列(#西暦年(#年月日)) +#文字列(#月(#年月日),2)+ #文字列(#日(#年月日),2)) は、 前行のデータが例えば20040331場合、本日のデータ20040401は <> と言う条件を満たすことになり、以下のデータが自動入力されます。 それは #数値(#文字列(#西暦年(#年月日)) +#文字列(#月(#年月日),2) +#文字列(#日(#年月日),2) +"01") であり、 データは数値型の20040401となります。 不思議なのは 1, の意味ですが、「以上の条件を満たさない場合」という意味です。 前行が20040401の場合、即ち本日平成16年4月1日に入力した場合、 <> の条件を満たしませんので、ここでの「以上の条件を満たさない場合」に 該当し、次の #直前値 ([顧客ID],1)+1 と言う数値データが入ります。 #直前値 ([顧客ID],1)+1 の意味は、前行のデータに1を加えると言うものです。 従って同一日の顧客IDは、行挿入毎に 2004040101 2004040102 2004040103 と数値が、1ずつ増えていき、顧客IDの自動連番入力が可能になります。 以上:2,193文字
|