Excel時間字段拼接以及行列轉換 時間字段拼接 行列轉換

時間字段拼接

近期由於項目中導出數據的時間字段拆分成零散字段,需要進行重新拼接整合。

首先對於小時字段不足兩位數的進行補0操作。

IF(LEN(D2)<2,"0"&D2,D2)

同樣操作分鐘和秒字段,進行補0操作。
然後用&字符將年月日 時分秒字段進行拼接。

A2&"-"&B2&"-"&C2&" "&I2&":"&J2&":"&K2

將拼接後的數據導入Mysql數據庫,時間time字段設置成varchar字符串類型。

由於需要統計前一天晚八點至次日晚八點的數據,所以需要寫SQL語句。
解決思路:將第二天0點至20點的數據算作前一天的數據。

select sum(a.link_rsl_h),DATE_FORMAT(a.time_R,'%Y-%m-%d') from
(with temp as(
select sum(link_rsl) as link_rsl_h,count(time) as count_h,STR_TO_DATE(time, '%Y-%m-%d %H') as time_h
from rain_deal group by STR_TO_DATE(time, '%Y-%m-%d %H'))
select link_rsl_h,
(case when hour(time_h) <20 then DATE_SUB(time_h,INTERVAL 1 DAY)
else time_h end) as time_R,
time_h from temp) a
group by DATE_FORMAT(a.time_R,'%Y-%m-%d')

注意case when的語法,如果 case 字段 when 會不生效,需要調整爲 case when 字段。

判斷小時字段的值:

DATE_FORMAT(time_h,'%H') <20或者hour(time_h) <20

字符串轉日期:

STR_TO_DATE(time, '%Y-%m-%d %H')

獲取前一天日期:

DATE_SUB(time_h,INTERVAL 1 DAY)

日期格式化:

DATE_FORMAT(a.time_R,'%Y-%m-%d')

行列轉換

方法一:
第一種方法,在Excel裏選中要轉換成列的單元格,Ctrl+C複製

看一下Excel最下方狀態欄顯示是多少行,就在空白區域選中多少列。

點擊右鍵,選擇“選擇性粘貼”,裏面有個“轉置(T)”,點擊後就會發現,行已轉爲列。

方法二:
也可以使用公式,這是第二種方法。首先確定要轉成列的有多少行,然後某一行的空白區域選擇同樣數目的單元格。

直接輸入公式“=TRANSPOSE(array)”,其實你只要輸入前面幾個字母,不論大小,Excel就會自動查找對應的公式顯示出來,然後雙擊該公式,選中你要轉換的列,按組合鍵Ctrl+shift+enter即可。

同樣道理,也是運用上面2種方法將列轉爲行。

參考鏈接:如何將Excel裏的文字行轉列,列轉行?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章