ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11464|回复: 28

[原创] 在SQL+数据透视表应用中的字段类型的转换

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-2 06:37 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在SQL语句中常用的一下函数在SQL+数据透视表中就不能用的,
如replace,cast,convert等等,这时候我们就要到VBA中去找函数。
甚至我们都不用函数就可以实现数据类型的转换,那感觉就像一个老师在函数课中讲过的:”秀才遇到兵,有理讲不清“。我们都可以不用CDBL(转双精度类型)和Csng(转单精度类型)
见到文本数字转数字用运算符,加、减、乘、除,就看你喜欢了
见到数字转文本用连接符:“&”,后面加一个""
下面是一个将非标准日期输入正常生成数据透视表的实例
SQL语句如下:
select left(DATE,4) as yr,MID(DATE,6,2) as mth,Mid(DATE,9,2) as dy, cdate(yr & '-' & mth & '-' & dy) as DATE1, SALES, PCS from [Sheet1$]
将年、月、日分别提取出来后》再将文本组合起来》再将组合文本转换成日期格式

date-result.rar (78.88 KB, 下载次数: 234)

特别要提醒的一点,在作为数据源的字段输入必须统一单元格格式,混合格式会造成错误。例如文本和数字混输,excel会按第一个记录的单元格类型来默认。
1、第一个是数字,后面的文本记录就为空;
2、第一个是文本,后面的数字记录就为空。
下面附件中sheet1中为第一种情况,sheet2中为第二种情况

SQL-type.rar

2.13 KB, 下载次数: 191

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-6-2 07:10 | 显示全部楼层
我建议Scarlett_88 做透视表版块版主之一。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-2 07:12 | 显示全部楼层
原帖由 monvzhilei 于 2009-6-2 07:10 发表
我建议Scarlett_88 做透视表版块版主之一。

刚想跑过来占个位的,待48期竞赛完后添加内容的。你跑的还挺快

TA的精华主题

TA的得分主题

发表于 2009-6-2 07:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-2 07:39 | 显示全部楼层
原帖由 Scarlett_88 于 2009-6-2 07:12 发表

刚想跑过来占个位的,待48期竞赛完后添加内容的。你跑的还挺快



才女的笑应该要捂着嘴的。论坛没有捂着嘴的表怀。那么应该是 而不应该是

哈哈。。
支持二楼意见做透视表与函数还有VBA的版都行。或者SQL版块也行。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-2 07:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我晕
F]ROQ)NT]WW6HW5I$W)PXBR.gif

TA的精华主题

TA的得分主题

发表于 2009-6-2 07:53 | 显示全部楼层
原帖由 Scarlett_88 于 2009-6-2 07:51 发表
我晕
522475



现在晕很正常了。现在是你们那里晚上了。要准备休息了。。。

TA的精华主题

TA的得分主题

发表于 2009-6-2 08:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
很不错,学习了。

TA的精华主题

TA的得分主题

发表于 2009-6-2 08:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
支持2楼的看法

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-2 10:13 | 显示全部楼层
自己不小心给自己挖了一个坑,给掉下去了
用逗号的方式刚好同要转换的字符巧合,所以语句可以非常简化:
select cdate(DATE) as DATE1, SALES, PCS from [Sheet1$]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 13:21 , Processed in 0.034491 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表