今天分享一個數據處理的小技巧。
最近被星友問到文本格式的時間如何轉換為數字時間的問題,本文就來介紹一種簡易的轉換方式,如果你恰好碰到這種問題,應該會有幫助。
模拟示例數據如下圖:
在這些時間字符串中,有的是完整的時分秒,而有的隻有小時或者分鐘,對于這樣的字符串顯然不能直接轉換為标準的時間或者數值數據,如果想把這樣的文本轉換為數字的秒數,應該怎麼做呢?
基本思路是将文本的小時、分鐘和秒根據單位,替換為相應的計算表達式,然後運行計算即可,下面就來看看PowerQuery的具體轉換方式。
導入PowerQuery以後,選中這一列,右鍵>替換值:
将"小時"替換為"*3600 ":
同樣的方式,再做兩次替換,将"分鐘"替換為"*60 "、将"秒"替換為空,就可以将以上的時間字符串轉換為這樣的數學表達式:
然後利用M函數Expression.Evaluate來計算這個表達式,添加自定義列:
Expression.Evaluate(
Text.TrimEnd([時間]," ")
)
因為數據中有些時間的秒是不全的,導緻上面的替換操作後,有的值最後帶有“ ”,所以這裡用了Text.TrimEnd先将尾部的字符" "清除掉,然後再計算這個表達式,結果如下:
這樣就輕松從時間文本得到了具體的數字,如果想要的是小時數,在這個基礎上再除以3600即可。
解決這種需求的方法,當然不止這一種,但應該是最簡單、最易于理解的做法,很多數據的處理,不要把它想的太複雜,大部分需求都可以靈活使用PowerQuery中的界面操作來完成。
更多精彩我的新書《PowerBI商業數據分析》上市了
PowerBI業務分析技巧:利用DAX細分客戶
PowerBI行級安全性(RLS)三種常見的角色規則設置
采悟 | PowerBI星球
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!