Board logo

標題: [發問] 發薪日 逢六日遞延 [打印本頁]

作者: carzyindex    時間: 2011-3-2 15:41     標題: 發薪日 逢六日遞延

本帖最後由 carzyindex 於 2011-3-2 17:43 編輯

公司發薪日為每月的18號

逢六日就延到星期一

請問函數該怎麼設定佔用的儲存格越少

感覺這問題滿常見的  

20110318
20110218
20110118
20101220
20101118
20101018
20100920
20100818
20100719
20100618
20100518
20100419
20100318

自己的做法滿慘的

2011/3/18
2011/2/18
2011/1/18
2010/12/18
2010/11/18
2010/10/18
2010/9/18
2010/8/18
2010/7/18
2010/6/18
2010/5/18
2010/4/18
2010/3/18
先用weekday判斷星期幾如果星期六+2星期日+1
跪求簡化
作者: ANGELA    時間: 2011-3-2 18:04

本帖最後由 ANGELA 於 2011-3-2 22:29 編輯

用WEEKDAY 或用MOD 都一樣要用IF 去判斷,如果不增加欄位,就要用VBA去判斷18日是否為週末再直接把18日修改為下一個星期一的日期.
否則用長公式
=IF(MOD(DATE(YEAR(TODAY()),MONTH(TODAY()),18),7)=0,DATE(YEAR(TODAY()),MONTH(TODAY()),20),IF(MOD(DATE(YEAR(TODAY()),MONTH(TODAY()),18),7)=1,DATE(YEAR(TODAY()),MONTH(TODAY()),19),DATE(YEAR(TODAY()),MONTH(TODAY()),18)))
作者: carzyindex    時間: 2011-3-2 23:36

回復 2# ANGELA


    原來公式是這樣用的,真不是普通的短啊
作者: oobird    時間: 2011-3-3 08:09

a1輸入2011/3/18
a2=EDATE(DATE(YEAR(A1),MONTH(A1),18),-1)+CHOOSE(WEEKDAY(EDATE(DATE(YEAR(A1),MONTH(A1),18),-1),2),0,0,0,0,0,2,1)
往下拉
作者: ANGELA    時間: 2011-3-3 11:37

回復 4# oobird


    choose這個函數幾乎被遺忘了,真管用,謝謝指導.
作者: gong    時間: 2011-3-3 15:06

=DATE(2011,ROW(),18)+MID("0000012",WEEKDAY(DATE(2011,ROW(),18)),1)
作者: ANGELA    時間: 2011-3-3 23:08

本帖最後由 ANGELA 於 2011-3-4 08:24 編輯

=DATE(2011,ROW(),18)+MID("0000021",WEEKDAY(DATE(2011,ROW(),18)),1)
龔兄也是我的啟蒙老師,謝謝長久來的教導,mid函也用的妙
作者: james417    時間: 2011-3-13 19:52

=DATE(2011,ROW(),18)+MID("0000021",WEEKDAY(DATE(2011,ROW(),18)),1)
MID這招太強了
不是一般人會想到的




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)