[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『教えてください』(けんじ)
リハビリの仕事をしていますが、以下のような業務があり、毎日の準備にエクセルが活用できないかと思い、質問させていただきたいです。
Aさんはyyyy/mm/ddから開始し、月曜日、木曜日に参加されます。 開始日から●●日後付近に、●●の書類説明をする、▲▲日後には、▲▲を渡す… これが数十人おられ、毎日明日の準備に明日の日付と照らし合わせて書き出したりするのです。
日にち計算で何日後がいつになるかは計算できたのですが、
明日は誰が来て、その人に何をする日なのか、一覧がパっとでるマクロ設定みたいなのがしたいのです。
素人な質問で申し訳ないですがよろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
ただ、後からあれもこれもと機能追加したくなりそうな要素が沢山ありそうなので、自力解決より、お金出してプロに依頼して、ちゃんとしたシステムにしてもらう方が、後々のためかも知れません。
(???) 2018/12/20(木) 09:07
自分でできそうな気がしていたので相談したのですが、、
パッと聞いた感じで、素人の手に負えなさそうですか?
(けんじ) 2018/12/20(木) 16:56
例:
書類の種類
●●
××
△△
・
・
・
利用者
山田太郎
田中次郎
・
・
・
担当者
鈴木三郎
斎藤四郎
・
・
・
このような感じです
わからないことがあればご質問ください
(さおり) 2018/12/20(木) 17:32
まずは、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
と一覧が別シートとかで出せて、印刷して見れたらうれしいです!
(けんじ) 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.