EXCEL中“X分X秒”轉換成以秒為單位的數字--LEFT, MID和FIND函式的實際應用
阿新 • • 發佈:2019-02-04
昨天在聯通的網站上查詢了一下沃家庭套餐的使用情況。
聯通的報表做得不錯,有詳細的通話記錄。不過每一次通話的記錄都是“10分24秒”這樣的記錄,我怎麼才能知道到現在為止一共使用了多長時間的通話時長呢?沃家庭的套餐是一個月有300分鐘的免費本地和長途通話時長。我想要搞清楚使用了多少時間,還剩下多少時長。
把網頁上的資料貼上到空白的excel檔案中,如下圖。可以看到D這一欄,也就是“通話時長”這一列的資料是不方便做統計的,求和是求不出來的。腫麼辦?用字元相關的公式做一下轉換了:
G這列是我加上的。可以看到G2這個單元格中的公式是:
其實是這個公式是分了兩種情況來處理:=IF( IFERROR( FIND( "分", $D2 ), 0) > 0, LEFT( $D2, FIND( "分", $D2 ) - 1 ) * 60 + IFERROR( MID( $D2, FIND( "分",$D2 ) + 1, FIND( "秒", $D2 ) - FIND( "分", $D2 ) - 1 ), 0 ), LEFT( $D2, FIND( "秒", $D2 ) - 1 ) * 1 )
第一種是針對“42秒”這樣的情況,只有秒數,沒有分鐘的相關資訊,這種情況的處理相對簡單:
LEFT( $D2, FIND( "秒", $D2 ) - 1 ) * 1 )
只需要把D2單元格中“秒”字前面的部分截取出來乘以1就可以了。
第二種情況是“10分54秒”這樣的格式,這就需要把分鐘數和秒數分別截取出來。
LEFT( $D2, FIND( "分", $D2 ) - 1 ) * 60 + IFERROR( MID( $D2, FIND( "分",$D2 ) + 1, FIND( "秒", $D2 ) - FIND( "分", $D2 ) - 1 ), 0 )
這是把“分”字以前的部分截取出來乘以60,再把“分”字與“秒”字之間的字元截取出來乘以1,兩者相加。
這裡需要注意的是有可能源字串中根本沒有“秒”這個字元,如“10分”這樣的話就要用IFERROR函式來處理,如果沒有“秒”字就計為0。
同樣的道理,再用一層IFERROR來區分有“分”字和沒有“分”字的情況,這樣就得到了圖中紅色部分的公式。
用了上面的公式,“秒數”這一欄的資料就變成以秒為單位的數字了。
這樣就可以對它們求和來得到一共用掉了多少分種的通話時長,還剩下多少免費通話時間了。