昨天在幫粉絲解決告警恢復時間差的問題的時候出現了兩個低級錯誤。
原始需求是:通過告警的產生時間和修復時間計算告警的恢復總時長,並且去除夜晚23:00至次日凌晨6:00這段時間的時長。
第一個錯誤是:在23點至6點的時間判斷時僅使用了「大於」和「小於」符號。而正確的方式應該是使用「大於等於」和「小於等於」符號來進行判斷。
要注意的是:在EXCEL中的「大於等於」和「小於等於」符號可不是「≥」和「≤」哦。而是用「>=」和「<=」來表示。
(現在的EXCEL版本已經很好了,在早期的EXCEL中是沒有「>=」和「<=」的,只能嵌套一個「OR()」函數來表示:「>=」和「<=」的效果的)
第二個錯誤是:在計算式起始時間時僅考慮了23點的結束時間的限制,而忽略了當天6點開始時間的限制;同理在計算結束時間的時候也只考慮6點的限制,而忽略了23點的限制。
昨天對起始有效時間的計算公式為:(錯誤)
昨天對結束有效時間的計算公式為:(錯誤)
在這種公式的情況下,起始有效時間,僅考慮了23點以後無效,但忘記考慮6點以前也同樣無效的情況。
同理在結束有效時間計算時,僅考慮了6點以前無效,而忘記考慮23點以後的時間無效了。
所以這種情況下就需要進行兩次判斷,但是我們的「IF()」函數的僅能進行一次判斷。他的使用方法是:
IF(判斷條件,條件為真時的返回值,條件為假時的返回值)
例如,在昨天的結束時間的計算公式為:
if(D2<F2,Text(0,"[h]:m:s"),Text(D2-F2,"[h]:m:s")
該公式的解釋為:如果結束時間小於6點,則當天的時間為0,否則當天的時間為結束時間-6個小時。
但這個實際情況需要進行兩次判斷,分別判斷小於等於6點和大於等於23點的情況。所以就需要使用到IF()函數嵌套方式進行判斷。
函數嵌套的意思就是在函數裡面嵌套另一個函數。在office2003版以前的Excel僅允許嵌套7層函數。而到了2007版以後的Excel中最多可以允許嵌套64層函數。也就是說,我們可以:IF(IF(IF(IF(IF(IF(.)下去一共IF64次。
那麼根據兩次判斷的條件,這個公式的解讀應該是:如果結束時間小於等於6點,則當天的時間為0 ,否則如果結束時間小於等於23點,當天的時間為結束時間-6個小時,否則結束時間為23點-6個小時。
是不是有點燒腦?給個示意圖吧,這是結束有效時間的示意圖:
那麼同理,計算起始有效時間的時候應該是這樣的:
所以根據上述的結束,起始時間和結束時間計算的公式應該是:
正確的起始時間計算公式為:
正確的結束時間計算公式為:
大家可以自行對比一下正確和錯誤的公式有什麼區別。
其實這種函數嵌套的使用在很多地方都會使用到,以後大家可以根據實際情況進行嘗試。
關注我們正在打造的網優神器,他會提供很多工具哦,計算這些只是小兒科。期待吧。
下個月正式發布。關注我的微信公眾號。第一時間了解產品各項逆天的功能。
對於有深入想法的朋友,歡迎添加我微信,共同討論功能設計。
我們正在直播此次創業過程,欲了解更多詳情請關注本公眾號。
另外我為大家準備了一些關於5G的專業書籍,有興趣的兄弟可以看看:
希望大家:多讀書,多看報,少吃零食,多睡覺。
直播回顧:
《Excel中一個「隱藏」的時間函數應用詳解》
《通信行業中「你以為你以為的就是你以為的嗎?」》
《到底有沒有基於Iphone手機的信號測試APP》
《為什麼來自運營商的網優工具大多不好用》
《白嫖一時爽,一直白嫖一直爽》
《獨樂樂不如眾樂樂,為什麼一定要是競爭關係,合作共贏豈不是更好?》
《天下無優APP設計正式定稿,一大波功能正在向你襲來》
《如果只有測試功能怎麼能叫神器,通信人專用的水印相機功能了解一下》
《徵名活動投票結果公示》
《總共20個備選名字已經公布,將於10月1日開始發起投》
《APP界面布局投票結果公布》
《請大家投票表決APP主界面布局問題》
《APP室分測試功能設計效果》
《APP鄰區功能頁面設計效果》
《產品設計你來定:APP主界面導航條設計效果投票》
《產品命名活動粉絲投稿精選(第三期名單公布)》
《產品設計你來定:APP主界面導航條設計效果投票》
《解密新版APP主界面效果設計效果》
《一個很特別的投稿》
《產品命名活動粉絲投稿精選(第二期名單公布)》
《產品命名活動粉絲投稿精選(第一期名單公布)》
《對著嫦娥姐姐發誓:懸賞1000元,求各位大俠賜名》
《誠邀通信豪傑,打造網優利器》