麻辣家族討論版版's Archiver

iceandy6150 發表於 2021-10-30 00:39

自動產生特定日期功能

[i=s] 本帖最後由 iceandy6150 於 2021-10-30 00:43 編輯 [/i]

大家好
我有一個訓練表,定期辦理訓練,按照梯次走
目前自己用函數去處理
想請問如何使用按鈕自動產生? 謝謝

因為梯次是一串文字
有時候又要轉換為日期格式,還要加減月份,日又是固定值
不知道有沒有更好更快的處理方法
讓我只要填入梯次,按下自動產生按鈕,後面的格子所需要的都能自動出現
(例如我填入六個梯次,後面都會自動產生)
謝謝

[attach]34302[/attach]
綠色是基準,之後是用函數去處理
目前結訓測驗日是距離初級訓開課日8.5個月後辦理
我也想增加一個功能,讓我可以選擇要幾個月後辦理(最低是6,因為三種訓結束後才能結訓測驗)
[attach]34303[/attach]

samwang 發表於 2021-10-30 08:14

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117486&ptid=23454]1#[/url] [i]iceandy6150[/i] [/b]

[color=Blue]不好意思,看不太懂您實際需求,請在說明詳細,謝謝[/color]

因為梯次是一串文字[color=Blue]>>一串文字在哪裡?,要如何處理?[/color]
有時候又要轉換為日期格式,還要加減月份,日又是固定值[color=Blue]>>可以舉實際範例說明嗎?[/color]
不知道有沒有更好更快的處理方法
讓我只要填入梯次,按下自動產生按鈕,後面的格子所需要的都能自動出現
(例如我填入六個梯次,後面都會自動產生)[color=Blue]>>規則是什麼?[/color]
謝謝

准提部林 發表於 2021-10-30 12:16

看不懂邏輯, 先將公式整理一下:
[attach]34315[/attach]

"結訓測驗日"規則不清楚, 大約抓著做, 如:8個月, 應是滿8個月--亦即第9個月

vba可將第1及2行保留公式, 再依所需梯次數往下貼入即可

iceandy6150 發表於 2021-10-31 00:34

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117502&ptid=23454]3#[/url] [i]准提部林[/i] [/b]

抱歉,重頭說一次
規則是這樣
每個月報名分為上半行月(1號到15號)  以及下半月(16號到月底)
以第一行為例,在104年7月1~15報的人
叫做1040801梯 (每梯人數不一定,有多有少,本案例暫時不管人數)

初級訓練為期一個月
1040801梯的人,開始訓練日為104/08/01,要通過初級訓練必須要測驗,測驗日在結束月份的22號(所以是104/08/22)

中級訓練為期三個月
1040801梯的人,中級開始訓練日是104/09/01 (因為八月整個月是初級訓練),三個月就是九、十、十一
測驗日在結束月份的22號(所以是104/11/22)

高級訓練為期兩個月
1040801梯的人,高級開始訓練日是104/12/01,個兩月就是十二、明年的一月
測驗日在結束月份的22號(所以是105/01/22)

這三種訓練都要通過,最少是六個月
之後會安排一個結訓測驗
結訓測驗日,不是在01號就是15號,這兩種

有時候是六個月後馬上測驗
有時候是七個月後

我貼的案例是8.5個月後測驗
(1040801梯的人,開始訓練日為104/08/01,結訓測驗日為105/03/15)
如果改8個月後測驗,結訓測驗日為105/03/01

而下半月的人,叫做1040816梯
三種訓練的開始日都是16號
測驗日在結束月份的06號
我貼的案例是8.5個月後測驗
(1040816梯的人,開始訓練日為104/08/16,結訓測驗日為105/04/01)


總規則整理一下

一、我只要輸入梯次,梯次是一個字串(例如1100901),後面會自動產生並算好各欄位日期,(格式為110/09/22這樣)

二、上半月報名的人,三種訓練的開始日都是01號;測驗日在結束月份的22號
    下半月報名的人,三種訓練的開始日都是16號;測驗日在結束月份的06號

三、結訓測驗日的產生,可以讓我自由輸入(橘色部分),並且最低是6起跳(會自動檢查)

准提部林 發表於 2021-10-31 10:20

[i=s] 本帖最後由 准提部林 於 2021-10-31 10:25 編輯 [/i]

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117523&ptid=23454]4#[/url] [i]iceandy6150[/i] [/b]

依你舉的例子:梯次 1040801
>> 結測 8.5月 >> 105/03/15
往前推算
>> 結測 7.5月 >> 105/02/15
>> 結測 6.5月 >> 105/01/[color=red]15[/color] ---高級測驗 105/01/[color=red]22[/color]  --- 結測早于高測???
>> 結測 6.0月 >> 105/01/[color=red]01[/color] ---高級測驗 105/01/[color=red]22[/color]  --- 結測早于高測???
===============
梯次 1040816
>> 結測 8.5月 >> 105/04/01
往前推算
>> 結測 7.5月 >> 105/03/01
>> 結測 6.5月 >> 105/02/[color=red]01[/color] ---高級測驗 105/02/[color=red]06[/color]  --- 結測早于高測???
>> 結測 6.0月 >> 105/01/[color=red]16[/color] ---高級測驗 105/02/[color=red]06[/color]  --- 結測早于高測???

============================

ML089 發表於 2021-10-31 20:54

建議2列及3列都改為 excel日期(西元日期) 輸入,
再格式化為中文日期
梯次格式化 emmdd
報名截止格式化 e/mm/月底
其他隔式化 e/mm/dd

A4 以後的公式就可以大量減化
A4 =EDATE(A2,1)
右拉下拉

其他 A2:I3 另有公式詳檔案

iceandy6150 發表於 2021-10-31 20:59

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117526&ptid=23454]5#[/url] [i]准提部林[/i] [/b]

嗯...我想這個是計算方式的差異
最快能結訓測驗應該要在...高級測驗結束後,最接近的01號或15號

梯次 1040801
>> 結測 8.5月 >> 105/03/15
往前推算
>> 結測 7.5月 >> 105/02/15
>> 結測 7.0月 >> 105/02/01
>> 結測 6.5月 >> 105/01/15 ---高級測驗 105/01/22  --- 結測早于高測???
>> 結測 6.0月 >> 105/01/01 ---高級測驗 105/01/22  --- 結測早于高測???

高級測驗 105/01/22---則最早結測為105/02/01

以月分來看1040801梯
08~隔年02,為8+6=14 (12進一年...餘2)
數學計算,8月已經自己算一個月了,所以我才會說最低6

如果手算,8月要算,08,09,10,11,12,01,02,這樣是足七個月,也就是結測 7.0月 >> 105/02/01

===============
梯次 1040816 亦同
---高級測驗 105/02/06  --- 則最早結測為105/02/15
08~隔年02,為8+6=14 (12進一年...餘2)

對了,因為這些日期出來,要合併列印到WORD去
所以如果用自訂e/mm//dd,可能會出現錯誤
日期可能還是要維持字串 "105/02/15",這樣合併列印才不會出錯

所以是不是先從字串-->日期,加減後再變回字串 ?
謝謝

iceandy6150 發表於 2021-11-1 23:44

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117502&ptid=23454]3#[/url] [i]准提部林[/i] [/b]

版主大您好
您提供的檔案可以準確使用

但是結訓測驗日,是01,15這兩種,您的公式出來是01,16這兩種
[color=Blue]不知道怎麼修改? 謝謝[/color]

另外,我為了讓WORD合併列印可以正常讀取
必須把"日期"改成"字串"
我的方法是在工作表2去設定
比如B2=TEXT(工作表1!B2,"e/mm/dd")
然後把公式從B2拖曳到~右底,在拖曳到~下底

再從工作表2的A1,Ctrl+Shift+右  ,Ctrl+Shift+下
就可以整個複製起來,到工作表3的A1,貼上 "值"
就大功告成啦

[color=Blue]只不過,不曉得為何會出現奇怪的提醒[/color]

[attach]34332[/attach][attach]34332[/attach]

准提部林 發表於 2021-11-5 10:21

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=117554&ptid=23454]8#[/url] [i]iceandy6150[/i] [/b]

重新做, 日期都是民國年月日(文字型態):
[attach]34346[/attach]

1) 若你的版本無法使用 "r"&104/01/01..轉成西元年, 就比較麻煩
2) 新版excel對數值或日期型態, 而以文字型態處理時, 大部份會提示及標示, 並不妨礙正常使用

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供