ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

TEXT函数基础测试26小小题

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-29 15:20 | 显示全部楼层
本帖已被收录到知识树中,索引项:TEXT
强人!!好好学习中。

TA的精华主题

TA的得分主题

发表于 2011-11-30 02:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看了两天,学了两天,思考了两天。
终于看完了,也学到了不少,可疑惑更多。
比如第11题。

原题是把日期格式的“2011-5-31”转换为星期,正确的函数为“=TEXT(B22,"aaaa")”,可我测试时少打了个a,于是返回结果就成了“二”。
于是,我就想看看,再少打一个呢?再少打一个……
除了a是这样,那 b 呢,c 呢?

于是,就产生了好多疑问——
Text.PNG
呵呵,还是看附件吧。
Text的疑惑.rar (7.56 KB, 下载次数: 23)

TA的精华主题

TA的得分主题

发表于 2011-11-30 04:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lummox 发表于 2011-11-30 02:42
看了两天,学了两天,思考了两天。
终于看完了,也学到了不少,可疑惑更多。
比如第11题。

佩服你的学习精神,按照我的理解,使用text()函数应该无法直接返回分钟数,应该和minute()函数配合在一起使用:text(minute(a1),0)这样可以返回分钟数;text(a1,10)这个问题应该是text()函数只认可0作为它的参数,0前的数字不作为参数,直接可以转换成1&text(a1,0),详情见附件 Text的疑惑.rar (7.89 KB, 下载次数: 17)

TA的精华主题

TA的得分主题

发表于 2011-11-30 18:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢383楼朋友的回复{:soso_e100:}

1、诚如你所说,“使用text()函数应该无法直接返回分钟数”的!由于minute函数本身就是专门设计用来返回分钟数的,所以再与Text函数嵌套使用,就显得蛇足。

2、text(a1,10)并不可以直接转换成1&text(a1,0)(如果是也只是巧合)。理由是:text(a1,10)和text(a1,100)返回的是同一个数:140694. 倒不如说成是缩减掉0后的拼接更合适。

TA的精华主题

TA的得分主题

发表于 2011-12-1 10:33 | 显示全部楼层
lummox 发表于 2011-11-30 18:14
感谢383楼朋友的回复

1、诚如你所说,“使用text()函数应该无法直接返回分钟数”的!由于m ...

第2问
遇到text(789,100)之类的,
参数100,1000,5500,60850000,456008只要有0的。显示结果就怪怪的,原因如下:
a.如text(25678,90800),最后两个0是提取25678中的后面两位78(2个0代表2位),90800中的第一个0则代表剩余的位数(25678除了刚才的78,剩余256,即代表256)
其他非0的正常显示:结果9256878
b.不足位数补0,如text(5,123006)=123056,两个0代表2位数,而5只有1位,补0后变成05,相当于text(5,"00")

描述得不好,不知道是否明白
text.JPG

TA的精华主题

TA的得分主题

发表于 2011-12-1 10:50 | 显示全部楼层
本帖最后由 jonnygu 于 2011-12-1 10:51 编辑

其中有两题不会做,请教了别人,最终还是出来了

TEXT基础测试.rar

6.79 KB, 下载次数: 19

TA的精华主题

TA的得分主题

发表于 2011-12-1 19:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lummox 于 2011-12-2 00:01 编辑

谢谢阿虎的回复:)

经测试,并无你所说的“从右至左,1-2-1-3位”的规律。之所以让你得出这样的结论,是因为你所选参数中的“0”正好是“从右至左,1-2-1-3位”。

为了便于测试和使得测试结果更为直观,我把数据设为123456789(9位数),参数选用0、1组合(1用红色显示),并把不同的组合进行了分组,测试的结果见下图:
cs.PNG

从测试结果可以看出:

1、如果“0”是连续的,那么它的作用是替换为源数据,见1、2区。这也印证了 TEXT(A1,0)=A1【A1单元格为数值或日期,返回结果为字符串】的函数原意。
2、如果“0”是不连续的,那么它将“从右至左”严格按照所给定的“0”的位置和位数,返回被分割了的源数据,最左边的“0”返回被分割后的所有剩余数据,如果剩余数据的位数小于0的位数,则前补0。见3、4、5区。
3、参数部分的“0、1”其实都不是数值,其中有实际转换意义的只有“0”,而“1”可以是任何字符,只原样显示。

正是基于这样的认识,所以可以做出这样一个应用实例:

A1:9134
B1:=TEXT(A1,"他的生日是0年0月0日")
返回:他的生日是91年3月4日

再次谢谢阿虎和Richardzxb!

TA的精华主题

TA的得分主题

发表于 2011-12-2 08:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lummox 发表于 2011-12-1 19:50
谢谢阿虎的回复:)

经测试,并无你所说的“从右至左,1-2-1-3位”的规律。之所以让你得出这样的结论,是因 ...

当然,是看参数0的位置和个数的

TA的精华主题

TA的得分主题

发表于 2011-12-13 13:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好帖子,答案在哪里啊!

点评

前面几个楼层都有答案。  发表于 2012-1-5 08:32

TA的精华主题

TA的得分主题

发表于 2012-2-8 21:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
越学越觉得无知!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 11:47 , Processed in 0.037509 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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