[[20181219233910]] 『教えてください』(けんじ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『教えてください』(けんじ)

リハビリの仕事をしていますが、以下のような業務があり、毎日の準備にエクセルが活用できないかと思い、質問させていただきたいです。

 Aさんはyyyy/mm/ddから開始し、月曜日、木曜日に参加されます。
 開始日から●●日後付近に、●●の書類説明をする、▲▲日後には、▲▲を渡す…
 これが数十人おられ、毎日明日の準備に明日の日付と照らし合わせて書き出したりするのです。

日にち計算で何日後がいつになるかは計算できたのですが、
明日は誰が来て、その人に何をする日なのか、一覧がパっとでるマクロ設定みたいなのがしたいのです。
素人な質問で申し訳ないですがよろしくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


現在、どういうレイアウトのシート構成なのかと、明日の予定はどういうレイアウトにしたいのか、それを具体的な例と共に説明して頂けると、いろいろ提案が出ると思いますよ。

ただ、後からあれもこれもと機能追加したくなりそうな要素が沢山ありそうなので、自力解決より、お金出してプロに依頼して、ちゃんとしたシステムにしてもらう方が、後々のためかも知れません。
(???) 2018/12/20(木) 09:07


返信ありがとうございます。現在は、
シート構成もなにもなく一人一人手書きのチェックシートを作成して
カレンダーとにらめっこしています。
なので、レイアウトなどはこれから練っていきたいところですが

自分でできそうな気がしていたので相談したのですが、、
パッと聞いた感じで、素人の手に負えなさそうですか?
(けんじ) 2018/12/20(木) 16:56


まずはマスタの役割をするシートを作成してみてはいかがでしょうか?
完成次第コメントください

例:

書類の種類
●●
××
△△



利用者
山田太郎
田中次郎



担当者
鈴木三郎
斎藤四郎



このような感じです
わからないことがあればご質問ください
(さおり) 2018/12/20(木) 17:32


明日の予定を一覧にする、というだけなら、あまり凝らずに実現できると思います。 ですが、綺麗にスケジュール表にまとめたいなぁ、とか、もっと先に進めば、もっともっと便利にできそうに思えるのですよ。 そこまで見越したシートレイアウト設計、またはDB設計まで考えるべきかも知れませんし、そうやってどんどん要望が膨らみそうに感じます。

まずは、inputとoutputを明確にすることですね。 そこは実際に業務に関係する人にしか判らない部分です。
(???) 2018/12/20(木) 17:39


    A	      B	         C	    D
 1 利用者   開始日    書類説明   ▲▲を渡す  ……
 2 Aさん	   YYYY/M/D    =B2+3      =B2+4
 3 Bさん	   YYYY/M/D    =B3+3      =B3+4
 4 Cさん	   YYYY/M/D    =B4+3      =B4+4
 5 Dさん	   YYYY/M/D    =B5+3      =B5+4

 C列以降は数式でも手入力でもどっちでもいいですが
 とりあえずこんな感じのフォーマットになっていれば
 あとはオートフィルタで日付の列を絞るだけなので
 マクロでも簡単かなとは思います。

 >一覧がパっとでるマクロ設定みたいなのがしたいのです
 では何がしたいのか分からないので、とりあえず参考までに。

(TAKA) 2018/12/20(木) 17:50


たくさんのお返事ありがとうございます。
>さおりさん
早速、TAKAさんのようなものは作成できたのですが、どうしたらいいんでしょうか?すいません、ここで質問するのも初めてなもので。
>???さん
TAKAさんのような表がもととなって、明日12/21金曜日には、Aさんの書類説明とBさんの▲▲渡しがある、
Cさんも▲▲渡しにはちょっと早いけど(予定日の3日前だけど)週1回しかこられないから明日渡そう、
みたいなことを全員分抜粋して一覧になってみられれば、嬉しいです。使用するのはスタッフなので見栄えはあまり気にしません。
今回勉強できていけば、週間予定表とかへ発展させられれば、とは思いますが今は明日のことが一覧になればとても便利なだけです。
>TAKAさん
拙い説明で言いたいことを表にしてくれてありがとうございます!神様のようですほんと!
オートフィルタで、明日の日付に近い日を抜粋した上で、
Aさん 書類説明
Bさん ▲▲渡し
Cさん 
Dさん 書類説明

と一覧が別シートとかで出せて、印刷して見れたらうれしいです!
(けんじ) 2018/12/20(木) 23:19


    A	      B	                 C		          D
 1 利用者   開始日            処理内容        	         日数
 2 Aさん  YYYY/M/D    =VLOOKUP($D2,Sheet2!A2:B4,2)      =TODAY()-B2
 3 Bさん  YYYY/M/D    =VLOOKUP($D3,Sheet2!A2:B4,2)      =TODAY()-B3
 4 Cさん  YYYY/M/D    =VLOOKUP($D4,Sheet2!A2:B4,2)      =TODAY()-B4
 5 Dさん  YYYY/M/D    =VLOOKUP($D5,Sheet2!A2:B4,2)      =TODAY()-B5

<Sheet1>

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    A	      B	      
 1 日数    処理内容  
 2  1	  書類説明
 3  2	    書類Aを渡す
 4  3	  ▲▲を渡す
 5  4	

<Sheet2>

開始日から何日後の処理が決まっているのであれば、これで行けそうですが、、、

(みゆき) 2018/12/21(金) 16:14


みゆきさん 返信ありがとうございます。VLOOKUP関数ですね。参考になります。
開始から何日後の処理か、は決まっているのですが、
明日の予定、を立てるのに、明日来られる方の、明日が処理日か、3〜7日後に処理日が来る処理内容を自動で列挙したいのです。
ややこしい話ですいません。
(けんじ) 2018/12/22(土) 04:00

 想像で作成したものなので使い物にはならないかもですが
なにかの足しにでも。
シート、利用者 に

      A       B             C          D         E         F         G    H    I    J    K    L    M    N                             O              P         Q     
   1  ID      氏名          開始日     配布物1   配布物2   配布物3   月   火   水   木   金   土   日   住所                          連絡           EM        備考  
   2   10001  名前 000001    12月20日         1                   1    1              1                 仮名市仮名町仮名村字00578     999-999-9999   E=Maile   B     
   3   10002  名前 000002     11月3日                   1              1                   1         1  仮名市仮名町仮名村字00798     999-999-9999   E=Maile   B     
   4   10003  名前 000003    12月22日                   1                        1              1       仮名市仮名町仮名村字00767     999-999-9999   E=Maile   B     
   5   10004  名前 000004    12月23日                             1                   1              1  仮名市仮名町仮名村字00921     999-999-9999   E=Maile   B     
   6   10005  名前 000005    12月24日                                       1              1            仮名市仮名町仮名村字00065     999-999-9999   E=Maile   B     
   7   10006  名前 000006    12月25日                                            1              1       仮名市仮名町仮名村字00154     999-999-9999   E=Maile   B     
   8   10007  名前 000007    12月26日                                  1              1              1  仮名市仮名町仮名村字00029     999-999-9999   E=Maile   B     
   9   10008  名前 000008    12月27日                                       1              1            仮名市仮名町仮名村字00559     999-999-9999   E=Maile   B     
  10   10009  名前 000009    12月28日                                            1              1       仮名市仮名町仮名村字00709     999-999-9999   E=Maile   B     
  11   10010  名前 000010    12月29日                                       1              1            仮名市仮名町仮名村字00101     999-999-9999   E=Maile   B     
  12   10011  名前 000011    12月30日                                            1              1       仮名市仮名町仮名村字00510     999-999-9999   E=Maile   B     
  13   10012  名前 000012    12月31日                                                 1              1  仮名市仮名町仮名村字00991     999-999-9999   E=Maile   B     
  14   10013  名前 000013      1月1日                                  1              1              1  仮名市仮名町仮名村字00230     999-999-9999   E=Maile   B     
  15   10014  名前 000014      1月2日                                  1              1                 仮名市仮名町仮名村字00105     999-999-9999   E=Maile   B     
  16   10015  名前 000015      1月3日                                       1              1            仮名市仮名町仮名村字00516     999-999-9999   E=Maile   B     
  17   10016  名前 000016      1月4日                                            1              1       仮名市仮名町仮名村字00939     999-999-9999   E=Maile   B     
  18   10017  名前 000017      1月5日                                                 1              1  仮名市仮名町仮名村字00174     999-999-9999   E=Maile   B     
  19   10018  名前 000018      1月6日                                       1              1            仮名市仮名町仮名村字00044     999-999-9999   E=Maile   B     
  20   10019  名前 000019      1月7日                                            1              1       仮名市仮名町仮名村字00755     999-999-9999   E=Maile   B     

 N列以降は今回は未使用ですが。。。利用者一覧表なども作成可能 ^^;

 シート 、配布 に
     A        B          C         
  1  ID       配布物名   条件日数  
  2  H00001   配布物1            3 
  3  H00002   配布物2            7 
  4  H00003   配布物3           20 

 新規BOOKに上記のような内容が作成済み。。。
シート 、 予定 、空 が作成済、てきと〜な名前でブック保存済
が前程になります。

 標準モジュールに
Option Explicit
Sub main()
    Dim Ys             As Worksheet
    Dim Rs             As Worksheet
    Dim Hs             As Worksheet
    Dim i              As Long
    Dim j              As Long
    Dim ds             As Date
    Dim Rr             As Range
    Dim Hr             As Range
    Dim r As Range
    Dim youbi As String
    Dim x As Long
    Set Ys = Worksheets("予定")
    Set Rs = Worksheets("利用者")
    Set Hs = Worksheets("配布")
    Set Rr = Rs.Range("A1").CurrentRegion.Offset(1). _
             Resize(Rs.Range("A1").CurrentRegion.Rows.Count - 1, _
                    Rs.Range("A1").CurrentRegion.Columns.Count)
    Set Hr = Hs.Range("A1").CurrentRegion
    With Ys
        .UsedRange.Delete
        ds = DateSerial(Year(Now()), Month(Now()), Day(Now())) + 1
        .Cells(1, 1).Resize(1, 6) = Array("予定表", "", "年月日", ds, "曜日", Format(ds, "aaa"))
        .Cells(1, 1).Resize(1, 6).Value = .Cells(1, 1).Resize(1, 6).Value
        .Cells(2, 1).Resize(1, 5) = Array("利用者ID", "氏 名", "配布物1", "配布物2", "配布物3")
        youbi = .Range("F1").Value
        i = 3
        For Each r In Rr.Rows
            x = Application.Match(youbi, Rs.Rows(1), 0)
            If r.Cells(x) = 1 Then
                .Cells(i, 1) = r.Cells(1)
                .Cells(i, 2) = r.Cells(2)
                For j = 3 To 5
                    If r.Cells(j + 1) = 1 Then
                        .Cells(i, j) = "配布済"
                    Else
                        .Cells(i, j) = r.Cells(3) + CLng(Application.VLookup("H0000" & j - 2, Hr, 3, 0))
                        If .Cells(i, j) <= .Cells(1, 4) Then
                            .Cells(i, j).Interior.Color = vbYellow
                        End If
                    End If
                Next
                i = i + 1
            End If
        Next
    End With
End Sub
※Match、Vlookup等、エラー処理はしていません。(実用化の場合は必須かも)利用者シートの配布物のフラグと開始日を変えて試して見てください
変数dsに足す数字も変えると予定日が変化します。
現状は今日の日付+1で明日になっています。
上記の表をコピペしてシートに貼り付けて、選択、後
データータブの区切り位置を使いスペース区切りで
一括セルに取込出来ますよ。
でわ
(隠居じーさん) 2018/12/22(土) 16:45

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.