今天User問了我一個 EXCEL 函數問題

他說他google 研究了2小時,還沒辦法解決

看在他這麼認真的份上,我覺得幫他google 查查看

為何我也要google???  

小妹不才,我是寫 TIPTOP 4gl 程式的人

沒辦法各方精通,不過我相信我google的能力,還是比一般user強一點

==============言歸正傳=======================

到底User 需要甚麼樣的函數,一開始也有點難倒我了

因為日期這種千奇百怪的函數,各式各樣都有

User 是一位業助,他個客人出貨時會預設船期 (broker? )

他的需求是

如果出貨日期是星期二、星期三、星期四 則 船期要在星期日

如果出貨日期是星期一、星期五、星期六、星期日 則 船期要在星期四

其實不難,就是刻鋼板,才7個日期,就寫7個if else
也可以寫感覺很厲害的 SELECT CASE  的方法啦!!
這邊就用簡單的IF ELSE 跟大家分享

User 他已經有自己的天書 ,如下

weekday函數1.png

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,因為最符合我簡單的大腦

weekday函數2.png  

所以,我就開了一個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了

 weekday函數5    

  

以上,是不是很簡單呢???

USER總是能讓我不斷驚喜,教學相長,就是這麼來的吧!!

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dollybird207 的頭像
    dollybird207

    多麗鳥小天地

    dollybird207 發表在 痞客邦 留言(0) 人氣()