- 締切済み
曜日別該当者氏名の抽出について
現在福祉の仕事をしているのですが少しでも業務負担を減らすのに是非下記のような表を作成する方法を教えていただけないでしょうか? 【データベース】 日 月 火 水 木 金 土 入浴形態 特記(入浴) 田村 1 1 1 1 1 熱めはダメ 石田 1 1 1 2 短時間入浴 近藤 1 1 1 2 血圧確認 佐藤 1 1 1 2 入浴剤はダメ 上記の【データベース】より下記の表を自動作成(データベースはどんどん増えていく。 【表1 曜日別月間利用者予定表】 12/14 12/15 12/16 12/17 12/18 12/19 12/20 … 日 月 火 水 木 金 土 … 1 田村 石田 田村 石田 近藤 田村 田村 … 2 近藤 佐藤 佐藤 石田 近藤 … 3 佐藤 … 【表2 日別入浴利用表】 12月14日(日) 氏名 入浴形態 特記 1 田村 一般 熱めはダメ 2 近藤 特浴 血圧確認 3 データベースを元に【表1】【表2】のような表が自動的にできればスタッフ全員の業務負担が減り、業務効率もあがるのです。どうかどうかお力を貸していただいてエクセルで上記表の作成方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
今更、気が付いたのですが、番号は必ず上から順番でなくても大丈夫ではないでしょうか。 エラー処理変えれば、番号が飛んでも大丈夫でしょう。 例えば、訪問時間帯を入れるのも良いかと思います。 例えば、訪問の順番に番号を入れるととか、担当者の番号を入れるとかで利用方法がありそうです。 【表1 曜日別月間利用者予定表】は A B C D 日付 時間帯1 氏名時間帯2・・・ 12/14 12/15 12/16 INDEX(データ!$A:$A,MATCH(COLUMN(A1),OFFSET(データ!$A$1,0,WEEKDAY($A2,2),1000,1),FALSE)) を式1としたら =IF(ISERROR(式1),"空き",式1)とかと応用します。 入力の方法では、今まで通り全て1を入れて、オートフィルタで月曜日の空白以外を表示、順番を入れる 火曜日ほかも同様・・・ ユーザーフォームで登録の順番で番号入れるのであれば =MAX(月曜日の範囲)+1 とかで取得できると思います。 ユーザーフォーム上で難しければ、データベースのシートの最後の行に =MAX(B2:B100)とかで、右コピィしておいて、ユーザーフォームで利用する方法もあるかと思います。 ほか、いったん全て1入れてVBAで上から順に番号を変えるなども方法あると思います。
- hallo-2007
- ベストアンサー率41% (888/2115)
【データベース】は 日 月 火 水 木 金 土 入浴形態 特記(入浴) 田村 1 1 1 1 1 熱めはダメ 石田 1 1 2 2 短時間入浴 近藤 2 1 2 2 血圧確認 佐藤 2 2 3 2 入浴剤はダメ と上から順番に数値ではダメでしょうか。 【表1 曜日別月間利用者予定表】は A B C D 日付 氏名1 氏名2・・・ 12/14 12/15 12/16 …の方が良いでしょう。(横方向にデータを広げるには限界があります) 氏名1の2行目に =IF(COLUMN(A1)<=MAX(OFFSET(データ!$A$1,0,WEEKDAY($A2,2),1000,1)),INDEX(データ!$A:$A,MATCH(COLUMN(A1),OFFSET(データ!$A$1,0,WEEKDAY($A2,2),1000,1),FALSE)),"") で右へコピィ、下へコピィします。 めちゃくちゃ長いですが INDEX(データ!$A:$A,MATCH(COLUMN(A1),OFFSET(データ!$A$1,0,WEEKDAY($A2,2),1000,1),FALSE)) の部分を理解してください。 表2 日別入浴利用表】 A B 1 12月14日(日) 2 氏名 入浴形態 特記 3 田村 一般 熱めはダメ 4 近藤 特浴 血圧確認 として、S3セルには =VLOOKUP(A$2,表1!A:F,ROW(A2),FALSE) で下へコピィします。 名前の一覧が出れば、データベースのシートからVLOOKUP関数で入浴形態、特記も得られると思います。
お礼
感激です。自分では到底思いつかないような素晴らしい回答をすぐに送っていただきほんとに有難うございました。表1と表2についてはおかげさまで問題なく最初にイメージしてたとおりの表ができ、大変助かりました。 こんな複雑なことができてしまうhallo-2007さんをほんと尊敬します。 こんなことができてしまうのなら、もうひとつわがままを聞いていただいてもよろしいでしょうか?最初のデータベースで上から順番に数値を入れるところで実は今、うちのパソコンが苦手な職員にも簡単に入力できるようにエクセルのマクロでユーザーフォームを入力することによってデータベースに自動入力や行追加ができるような感じで作成しているのですが利用日の日~土曜日のチェックボックスにチェックを入れるとデータベースの曜日のところに数値の1が入力されるようにした場合、上から順番に数値を1だけじゃなく2,3,4としていくには関数等でなにか良い方法はありますでしょうか?もし良い案があれば教えてください。宜しくお願いいたします。