今天有朋友问我一个问题,一个表格中有800米比赛的时间数,此时因为某种需求,需要把所有时间都减去15秒时间,问题是该表中的时间数据是文本格式的,是不能计算的,有没有什么好办法。
想了想,参考网上的答案,总算弄出来了
问题:
原始数据是这样的,a列中的老师文本,并非格式化后的时间。
解决思路
- 用文本函数提取出文本中的时间数,和秒数
- 计算这两个数值加起来的时间值
- 根据需要格式化时间值
- 计算加减后的数值
解决过程
1). 提取分钟数
用到一个函数 left(操作单元格, 提取该单元格从左起几位数)
,在这个例子中,我们只需要提取从左边数的一位数即可。所以是 =left(a1,1)
拖动单元格右下角,把公式复制到需要的所有的单元格中。
此时计算出分钟数。
2). 提取秒数
秒数需要另外一个函数 mid(操作单元格, 提取的起始位置, 提取的数量)
,用于提取一个文本中间位置的文字。
在这里我们需要从第3位开始提取2位,就是 =mid(a1,3,2)
3). 计算时间值
这里需要说明一下关于时间的知识:表格中的1
,在时间格式里代表的是1天
的时间,也就是 24:00:00
如第一列,所以需要计算3分45秒
是多少天,就是计算 3分
是多少天 加 45秒
是多少天。
也就是:
3/60/24 = 0.00208333 天
45/60/60/24 = 0.00052083 天
4). 设置时间格式
现在D列已经是时间值了,可以进行时间的相关计算了。
再补充一个知识点:单元格中的数值本身是不会随格式的变化而变化的,设置格式只是设置了数据的显示格式,其本质并没有变化。
比如,设置成 03'45
这样的格式,
- 点 D 列,打开
单元格设置
- 找到
格式
面板,设置自定义格式
- 在输入框中输入
mm'ss
即可
5). 时间的加减运算
知识点: 时间的输入全部要以 时:分:秒
的格式输入,表格才会知道这是一个时间值,而不是其它数据类型。如,15秒 就输入 00:00:15
获取指定时间数的函数 time(小时数, 分钟数, 秒数)
我们把需要减去的 15 秒,就是 time(0,0,15)
就是这样,Yeah