专业的缘故,Excel 电子表格的很多方便的数据运算功能我是相当陌生的,但是今天又让我不得不尝试着凭借一点点模糊的线索去完成电子表格函数的应用,就像专科医生要解答非常专业的非本专业问题。
问题提出:期货交易报表(xls文件)中没有持仓时间一项,很简单的可以用”开仓时间“-“开仓时间“,但是报表给出的时间数据是文本格式("12/17/2010 10:01"),非电子表格的常规时间格式,不能直接作为数值运算,必须经过转换过程。
1.现在电子表格函数列表中查看有关格式转换的函数,发现TIMEVALUE( ) ——单元格中存在以固定格式表示的时间(如0:00:00 ),将其截取并转换成 0 到 0.999999999 之间的数值,代表从 0:00:00 到 23:59:59 的时间。
2.截取字符串"12/17/2010 10:01" 中代表时分秒的部分:MID(H25,12,5)
3.这一步,因为对第一步没理解,走了弯路,使用将数值格式表示成时分秒的MINUTE( ),再除以24*60分钟,把返回值的数值格式改为时间0:00:00 格式,看似成功,细一算有错误的。查找错误是最难的。拆分吧,一步步的模拟运算。
4.最后,发现是MINUTE( )是多余的。将 MINUTE(TIMEVALUE(MID(J25,12,5))-TIMEVALUE(MID(H25,12,5)))/(24*60) 改成 =TIMEVALUE(MID(J25,12,5))-TIMEVALUE(MID(H25,12,5)) 。OK!