QlikView中提取Check_in字段日期与时间的问题求助
我来帮你搞定这两个头疼的问题——QlikView里拆分提取多个日期时间条目,还有Excel里部分日期转不了的状况:
QlikView 脚本处理方案
你的Check_in字段是多个日期时间用空格堆在一起的字符串,直接用Time(Fromtime)肯定不行,因为根本没有Fromtime这个字段呀。得先把这些日期时间拆成单独条目,再转成标准格式:
- 第一步:把多值字符串拆分成多行
用SubField配合IterNo()循环拆分每个日期时间片段,脚本示例:
这段脚本会把原来一行里的多个日期时间,拆成单独的行,每个行对应一个// 先加载原始数据,拆分出每个日期时间文本 RawData: LOAD *, SubField(Check_in, ' ', IterNo()) AS DateTimeRaw FROM [你的数据源文件路径] WHILE IterNo() <= SubStringCount(Check_in, ' ') + 1; // 再把文本转成标准日期时间格式 FinalData: LOAD *, // 用Timestamp#识别DD/MM/YYYY HH:mm:ss格式,再转成时间戳 Timestamp(Timestamp#(DateTimeRaw, 'DD/MM/YYYY HH:mm:ss')) AS check_in RESIDENT RawData; // 清理临时表 DROP TABLE RawData;check_in日期时间值。
Excel 日期格式转换问题
部分日期能转、部分不行,基本都是因为那些“转不动”的日期是文本格式——看起来像日期,但Excel没把它识别成日期。试试这两个方法:
方法1:文本分列法(最省心)
- 选中有问题的日期列,点击顶部菜单栏的「数据」→「分列」
- 第一步选「分隔符号」,点击下一步;第二步取消所有分隔符,直接下一步
- 最后一步,列数据格式选「日期」,类型选「DMY(日/月/年)」,点击完成
这样Excel会强制把文本格式的日期转成真正的日期时间值。
方法2:公式强制转换(对付顽固文本)
如果分列不管用,用公式手动提取年月日和时间:=DATE(MID(A1,7,4), MID(A1,4,2), LEFT(A1,2)) + TIMEVALUE(RIGHT(A1,8))解释一下:
MID(A1,7,4)提取年份(比如从18/11/2019里拿2019),MID(A1,4,2)提取月份,LEFT(A1,2)提取日期;TIMEVALUE(RIGHT(A1,8))提取后面的时间。把公式结果单元格设置成「日期时间」格式就OK了。
内容的提问来源于stack exchange,提问作者Bakhtawar Ashiq
相关产品推荐
相关产品推荐

