excel時分秒轉化為秒(excel把分鐘轉化為秒)
本節主要分享的函式是IFERROR和NUMBERVALUE
上回我們用MID和FIND函式已經將數值提取出來,但是一些錯誤的返回值顯示“#VALUE!”,此時我們需要檢驗錯誤返回值,並將錯誤值返回指定值。
IFERROR(value, value_if_error)
H3=IFERROR(MID(F3,1,FIND("小",F3)-1),0) I3=IFERROR(MID(F3,FIND("時",F3) 1,(FIND("分",F3)-FIND("時",F3)-1)),0)
如此類推算出J列跟K列,結果如下圖:
我們可以看出H、I、J、K、L列部分返回的值靠左,意味著這些返回值只是“文字”,並不是數值。如果需要計算出具體的時間,還需要將文字轉化成數值。
很多同學都用過VALUE函式,將文字值轉化成數值,今天我要介紹的是萬金油函式,NUMBERVALUE能夠將空格等少數不規範文字強制轉化為0,只返回文字中含有的單獨數值,如果含有文字字母,將返回錯誤值,本次將用該函式以解決K列和L列的含有多有多餘數值的文字。
NUMBERVALUE(Text, [Decimal_separator], [Group_separator ])
我們這裡用NUMBERVALUE函式將H列到L列以後得到以下結果:
K3=NUMBERVALUE(IFERROR(MID(F3,1,FIND("分",F3)-1),0)) L3=NUMBERVALUE(IFERROR(MID(F3,1,FIND("秒",F3)-1),0))
再次用IFERROR函式以後即可將錯誤值返回為0.
K3=IFERROR(NUMBERVALUE(IFERROR(MID(F3,1,FIND("分",F3)-1),0)),0) L3=IFERROR(NUMBERVALUE(IFERROR(MID(F3,1,FIND("秒",F3)-1),0)),0)
到這一步,已經將所有時間的數值提取出來,即可計算出所有時間轉化為秒的數值。
具體公式如下:
NUMBERVALUE(IFERROR(MID(F3,1,FIND("小",F3)-1),0))*3600 NUMBERVALUE(IFERROR(MID(F3,FIND("時",F3) 1,(FIND("分",F3)-FIND("時",F3)-1)),0))*60 NUMBERVALUE(IFERROR(MID(F3,FIND("鍾",F3) 1,(FIND("秒",F3)-FIND("鍾",F3)-1)),0)) IFERROR((NUMBERVALUE(IFERROR(MID(F3,1,FIND("分",F3)-1),0))),0)*60 IFERROR((NUMBERVALUE(IFERROR(MID(F3,1,FIND("秒",F3)-1),0))),0)
公式其實不夠精簡,但是工欲善其事,必先利其器。