今天User問了我一個 EXCEL 函數問題
他說他google 研究了2小時,還沒辦法解決
看在他這麼認真的份上,我覺得幫他google 查查看
為何我也要google???
小妹不才,我是寫 TIPTOP 4gl 程式的人
沒辦法各方精通,不過我相信我google的能力,還是比一般user強一點
==============言歸正傳=======================
到底User 需要甚麼樣的函數,一開始也有點難倒我了
因為日期這種千奇百怪的函數,各式各樣都有
User 是一位業助,他個客人出貨時會預設船期 (broker? )
他的需求是
如果出貨日期是星期二、星期三、星期四 則 船期要在星期日
如果出貨日期是星期一、星期五、星期六、星期日 則 船期要在星期四
其實不難,就是刻鋼板,才7個日期,就寫7個if else
也可以寫感覺很厲害的 SELECT CASE 的方法啦!!
這邊就用簡單的IF ELSE 跟大家分享
User 他已經有自己的天書 ,如下
C欄是我幫他寫出來的結果
其實真的沒啥技巧,不過要理解WEEKDAY這個函數用法就是了。
WEEKDAY(serial_number,[return_type])
serial_number: 可以指定一個儲存格給他,或是直接指定日期
retern_type : 只回傳的日期格式 --> 我知道這樣講很模糊,我舉的例子好了
EX:
2014/5/6 星期二 為例
WEEKDAY('2014/5/6',1) => 這個值就是 3
WEEKDAY('2014/5/6',2) => 這個值就是 2
WEEKDAY('2014/5/6',3) => 這個值就是 1
起始的星期不同,所以使用不同的type,回傳值也不相同
最常使用的應該是2,這個type,因為最符合我簡單的大腦
所以,我就開了一個excel 試著寫程式,但是excle只有if,else使逗號","
就從 "星期日" 的船期寫起好了,星期日 ==> 使用WEEKDAY(DATE,2) = 7
演算的時候,再來確認是否為7
星期 2,3,4 船期要壓在 星期日
ex:
IF(WEEKDAY(B2,2)=2,B2+5) #此段翻成中文就是 如果B2欄等於 星期2 則 日期+5天,則得到就會是星期日
IF(WEEKDAY(B2,2)=3,B2+4) #如果是星期三,則日期 + 4天
兩段合再一起
IF(WEEKDAY(B2,2) = 2 ,B2+5,IF(WEEKDAY(B2,2)=3,B2+4))
其他星期就以此類推,看吧!! 不難對吧!!
當完成後,要驗算自己寫的是否正確,也可以使用WEEKDAY 來做驗算
C欄是算出來的結果,E欄我使用WEEKDAY(C2,2)來回傳值
應該要不是4就是7 兩種結果
所以沒有問題,就把函數文字段,送給user了
以上,是不是很簡單呢???
USER總是能讓我不斷驚喜,教學相長,就是這麼來的吧!!