【问题标题】:How to calculate hour difference from a text string "7.00 pm to 8.00 pm" or "11.00 am to 12.00 pm" using excel formula如何使用excel公式计算文本字符串“7.00 pm to 8.00 pm”或“11.00 am to 12.00 pm”的小时差
【发布时间】:2018-09-01 08:43:22
【问题描述】:

我想从给定的文本字符串中计算小时数和分钟数,目前我使用一些 excel 内置函数创建了以下公式,

示例文本字符串:

7.00pm 至 8.00pm 或 9.00am 至 11.45pm 或 1.20pm 至 3.40pm

公式创建-

=CONCATENATE(REPLACE(SUM(NUMBERVALUE(REPLACE(RIGHT(A1,LEN(A1)-11),5,2,""))-NUMBERVALUE(REPLACE(A1,5,100,""))),2,3," Hour")," ",CONCATENATE(RIGHT(SUM(NUMBERVALUE(REPLACE(RIGHT(A1,LEN(A1)-11),5,2,""))-NUMBERVALUE(REPLACE(A1,5,100,""))),1)*10, " Minutes"))

上面的公式从给定的字符串中获取数值,然后计算差值,然后将值分开,然后与给定的文本连接

这适用于字符串

晚上 7 点到晚上 9 点 40 分

输出:

2 小时 40 分钟

但我认为我所采取的方法不是最好的方法,而且当时间是上午到下午的意思是“上午 9 点到下午 1 点”时它也行不通,那么有没有其他方法可以通过时间差异进行计算。 或者我们可以微调这个公式...

如果需要有关此查询的任何进一步信息,请告诉我

【问题讨论】:

  • 您的系统时间真的使用. 而不是: 吗?
  • 不是系统时间,其实excel表格每天都是由不同的人手动填写的,在输入详细信息时他们使用.来区分小时和分钟

标签: excel excel-formula excel-2010


【解决方案1】:

时间属于时间。下面的公式会撤消输入过程中的所有错误,并计算出一个真实的时间值。

=TIMEVALUE(RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, ".", ":"), "am", " am"), "pm", " pm"), 8))-TIMEVALUE(LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, ".", ":"), "am", " am"), "pm", " pm"), 8))

给单元格一个自定义的数字格式,

h \hou\r\s \a\n\d m \mi\nut\e\s_)

该格式不会改变您拥有可用于未来计算的原始基础价值这一事实。

【讨论】:

  • 谢谢你的方法很酷,我不知道SUBSTITUTETIMEVALUE
猜你喜欢
  • 2022-01-19
  • 2021-11-15
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 2012-02-18
相关资源
最近更新 更多