作者:绿色风
分类:
时间:2022-08-17
浏览:177
楼主 gouweicao78 |
原帖:http://www.officefans.net/cdb/viewthread.php?tid=85476&page=1&extra=page%3D1 附件: 转换带小数数值为规范时间.rar
【问题】 A1:A18是一些设置了2位小数格式的数值,比如3.21、3.00等分别表示3分21秒、3分0秒。现欲求平均时间。 注意:整数部分不得超过2位数 【我的解答】
【解法一】数学计算法- =SUM(INT(A1:A18)+MOD(A1:A18,1)*100/60)/COUNT(A1:A18)/60/24
解析:1、取得小数部分*100/60,换算成与整数相同进制(单位为:分钟) 2、最后再除以60得到小时再除以24得到天数——真正的时间序列值 ——58 个字符 3、将*100改为/1%,结合*100/60就是/60%,简化如下:- =SUM(INT(A1:A18)+MOD(A1:A18,1)/60%)/COUNT(A1:A18)/1440 ——54个字符
【解法二】文本处理法- =AVERAGE(--("0:"&SUBSTITUTE(TEXT(A1:A18,"#.00"),".",":")))
解析:1、 利用Text将A列数据统一为0.00的格式(注意A2是3,而不是3.00) ; 2、 利用Substitute将小数点替换为冒号,并在前面加0:变成时间,最后--转换为数值后求平均值 ——58个字符- =AVERAGE(--SUBSTITUTE(TEXT(A1:A18,"0!:00.!:00"),".",))
解析:利用Text将"0:"也做到格式中,注意感叹号为强制显示下一字符的用法,也可用\——54个字符
节衣缩食,勒紧裤带,省略15个字符:- =AVERAGE(--TEXT(A1:A18/1%,"0!:00!:00"))
解析:利用/1%(即*100)将数据放大100倍,小数点终于退休了,也就不用Substitute替换了,大大缩短了公式——39个字符- =AVERAGE(--TEXT(A1:A18/1%,"0!:00"))/60
解析: 利用时间进制,先求得小时数,再/60,又省了1个字符——38个字符- =AVERAGE(TEXT(A1:A18/1%,"0!:00")/60)
解析:利用四则运算可以转化文本型数字为数值型的特性,两颗洁白的门牙--号也光荣下岗了——36个字符
|
2楼 xpm130 |
太有用了,谢谢!!! |
3楼 caijiuhua |
太有用了,谢谢! |
4楼 casic |
谢谢楼主分享! |
5楼 wangqilong1980 |
收藏慢慢学习。越学习,越发现自已的无知! |
6楼 swyrlbq |
非常实用的东西,楼主伟大。 |
7楼 健康快乐123 |
暂时用不上,先学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一