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里的文字行转列,列转行?

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