数据源 Excel 中出现两种不同的时间格式应该如何转换
0
这个实际上是 QlikSense,但估计 QlikView 应该也是同样的处理方式。
可以先看我的数据源,这个数据源我们是不可以修改的,因此没有办法在 Excel 上格式化。
可以看到有时间格式,最后的 17 号的那个是一个例外。
可以看到我测试过很多不同的方式,也参考过曹大神的这篇文章 http://www.flybi.net/article/375
但是发现两种格式不能同时处理,只能识别一种。我同时使用过解释函数和内嵌函数,可以看到不同的使用方式的效果。
我把测试文件也放上来了,把后缀.zip 改为 .rar 即可。
有知道如何解决这个问题的吗?
可以先看我的数据源,这个数据源我们是不可以修改的,因此没有办法在 Excel 上格式化。
可以看到有时间格式,最后的 17 号的那个是一个例外。
可以看到我测试过很多不同的方式,也参考过曹大神的这篇文章 http://www.flybi.net/article/375
但是发现两种格式不能同时处理,只能识别一种。我同时使用过解释函数和内嵌函数,可以看到不同的使用方式的效果。
我把测试文件也放上来了,把后缀.zip 改为 .rar 即可。
有知道如何解决这个问题的吗?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
4 个回复
BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-05-12 回答
赞同来自:
苦咖啡(1428215718) 10:54:13 PM
date#(,'DD/MM/YYYY')试试
阳光²º¹⁵(593564) 10:55:33 PM
@BIWORK 很简单啊
用过滤法
过滤掉/2014
和2014/
然后在同一加上2014/
BIWORK(2796543753) 10:57:10 PM
@苦咖啡 是这样的吗?
这个不行
BIWORK(2796543753) 10:58:23 PM
@阳光²º¹⁵ 怎么过滤啊? 这个 /2014 不是写死的,也可能有其它的年份
阳光²º¹⁵(593564) 10:58:51 PM
哦
就这两种格式吗?
Leo LOU(231575072) 10:59:36 PM
一个字符型的,一个date
阳光²º¹⁵(593564) 10:59:50 PM
还有一种办法
BIWORK(2796543753) 10:59:59 PM
阳光²º¹⁵(593564) 11:00:01 PM
你做个中间的时间表
Leo LOU(231575072) 11:00:03 PM
isnum判断下
BIWORK(2796543753) 11:00:13 PM
上面是我尝试的
Leo LOU(231575072) 11:00:31 PM
是数字的当date处理
不是的就按照字符处理
阳光²º¹⁵(593564) 11:00:48 PM
一个标准的时间对应两种不同格式的时间
这样更简单
BIWORK(2796543753) 11:01:37 PM
每太理解你们的意思
阳光²º¹⁵(593564) 11:02:16 PM
弄个新的excel
BIWORK(2796543753) 11:02:28 PM
数据源是不能动的
阳光²º¹⁵(593564) 11:02:29 PM
做个时间的表啊
你自己新做一个
然后去跟你原来的匹配
阳光²º¹⁵(593564) 11:04:14 PM
时间中间表:
标准时间字段,特殊时间格式1,特殊时间格式2
阳光²º¹⁵(593564) 11:05:27 PM
然后用你数据源的时间格式做两张表分别与特殊时间格式1和特殊时间格式2key关键
关联
BIWORK(2796543753) 11:06:48 PM
不至于这么弱吧,Qlik 这种转换也要这么来做
阳光²º¹⁵(593564) 11:07:20 PM
是你自己数据源不规范
BIWORK(2796543753) 11:07:55 PM
数据源不规范这个是没有办法的
阳光²º¹⁵(593564) 11:08:17 PM
所以就得特殊处理
BIWORK(2796543753) 11:08:42 PM
ETL 的脚本处理都要这么处理是不是太麻烦了
Leo LOU(231575072) 11:08:45 PM
isnum判断,转不过去的当字符取年月日,用makedate造日期
不需要自己拖excel
Leo LOU(231575072) 11:09:51 PM
建立时间维表也只需要自己建脚本用autogenerate创建,不然维护麻烦
BIWORK(2796543753) 11:10:37 PM
搞定了,结合你们两个人的意见搞定了!
BIWORK(2796543753) 11:11:38 PM
@Leo LOU NB!
BIWORK(2796543753) 11:13:01 PM
@Leo LOU 你在北京吗? 要不考虑下我们公司的这个职位 http://www.bijob.cn/position/105
---------------------------------------------------------------------------------------------------------
以下为解决方案 -
if(isnum("Posting Date"),Date(TRIM("Posting Date"),'YYYY-MM-DD'),Date(Date#(TRIM("Posting Date"),'YYYY/MM/DD'),'YYYY-MM-DD')) AS Date7,
先判断这个字段是否是数字 (需要结合曹大神的这篇文章看 http://www.flybi.net/article/375 ),如果是数字就是使用 Date 直接格式化,如果不是数字是字符串那么先按照已有样式转换,然后再转换为指定格式的日期。
天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-05-14 回答
赞同来自:
yuzou 2015-07-03 回答
赞同来自:
yuzou 2015-07-03 回答
赞同来自: