高飞悬赏 谁能给出这样的Excel函数:返回特定字符之前的数值

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:01:00
从网上下载话费清单(移动的)后,发现计费结果有误,想用公式方式自己重新计算一遍,现在碰到的问题是如1分36秒要转换成2(分钟),2分1秒→3,11分15秒→12,如为长途因为是6秒为一个计费单位,需要这样转换:38秒→7,1分33秒→16,11分15秒→113。箭头(“→”)前后的数据分别在不同列中。我用筛选(Excel2007)的方式也能解决,如筛选出1分1秒至1分59秒→2,但长途则需6秒一段的进行,效率太低。我的数据量又比较大,一个月就是上千行。请问如何用函数解决。回答满意再加分。
suisat的回答符合我的目的,同时也向AD5000学习。我不知道如何在此贴图。只能这样补充细节:D列为通话时长,如“31秒”,这是从移动网站详单复制而来,我无法直接转换为时间格式“00时00分00秒”;FGHIJ列分别为市话费长途费漫游费漫游长途费通话地(本地通话为邢台)。M1输入0时00分06秒(时间格式),N1输入0时01分00秒(时间格式),O列为转换为时间格式的通话时长如00时00分31秒,PQRS列分别为自己计算的市话费长途费漫游费漫游长途费。市话费率0.2元或免费。我先将D列筛选后分别用公式"00时00分"&D?和"00时"&D?在O列分别将如31秒→00时00分31秒,1分26秒→00时1分26秒。之后设计了这样的公式市话费=ROUNDUP(O3/$N$1,0)*(IF(F3>0,"0.2","0")),长途费=ROUNDUP(O3/(IF(G3>0,$M$1,$N$1)),0)*IF(G3>0,"0.07","0"),漫游费=IF(J3="邢台","0",ROUNDUP(O3/$N$1,0)*0.6),漫游长途费=IF(J3="邢台","0",ROUNDUP(O3/$M$1,0)*0.07)。
问题基本解决,但不够简练,仍有以下难题:①能不能不用M1和N1、O列。②优惠中免费解决了,还有0.05元/分钟的优惠。长途费中有0.2元的优惠,如何识别后用统一的公式解决。
如用文本函数是什

EXCEL难道识别不出时间?我看看
是这样,EXCEL之所以没有识别出时间,是因为EXCEL表示时间的结构是"XX时XX分XX秒"有两种方法解决.(假设录从第二行开始,时间列在第C列)

第一步修改时间格式,新建一列(设为G列),输和公式="00时"&C2,(希望你没有超过一小时的电话,如有把显示记录补上来,我看下),后面的行拉下就是了.

第二步在两空格中(假设为X1和Y1)输入计费时间:00时00分06秒.00时01分00秒(第一个是长途计费单位,第二个是市话计费单位)

第三步新建一列,输出以计费单位度量的时间,公式为=roundup(G2/$X$1,0)或=roundup(G2/$Y$1,0),因为你没有告诉长途/市内列的内容,我没办法用IF函数自动区分长途和市话,所以你自已排列下吧.

另一种方法是用文本函数,不过打这么多字太累了,你还是按第一种方法吧.

我不知道你时间的数据格式是什么样的,首先通过设置数字格式等操作变成00:00:00 这样的时间格式。

市话: =CEILING(A1,"00:00:60")
例如CEILING("00:01:36","00:00:60")的结果00:02:00,时间格式

长途: =CEILING(A1,"00:00:06")

Ceiling函数为向上舍入函数,具体查看Excel中的函数帮助。

求秒数的方法是: =A1/TIMEVALUE("00:00:01") (格式要为数字或者常规)

把长途的时间转化成秒啊,然后除以6,余数大于0则进一位。