Ragnar Von Lodbrok Asked: 2019-05-23 06:08:05 +0800 CST2019-05-23 06:08:05 +0800 CST 2019-05-23 06:08:05 +0800 CST 在 excel 2016/O365 中计算字符串公式的更好方法? 772 目标:将“2 天 16 小时 30 分钟”评估为秒。 我在网上搜索并没有找到合适的答案,我想要一个 100% 的公式解决方案。限制:没有 VBA,避免名称管理器,只有日/小时/分钟,存在空格。 我目前的解决方案: microsoft-excel microsoft-excel-365 1 个回答 Voted Best Answer Scott Craner 2019-05-23T06:31:10+08:002019-05-23T06:31:10+08:00 使用此 SUM 作为数组公式: =SUM( (ISNUMBER(SEARCH("Day",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*60*24*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0)) + (ISNUMBER(SEARCH("Hour",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*60*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0)) + (ISNUMBER(SEARCH("Minute",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*999,999)))))*(IFERROR(60*TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*999+1,999)),0)) ) 作为一个数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。 这将迭代字符串中的每个单词。如果它找到Day(s), Hour(s), OrMinute(s) 它会与该单词前面的数字进行适当的乘法运算。然后它添加结果。
使用此 SUM 作为数组公式:
作为一个数组公式,在退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。
这将迭代字符串中的每个单词。如果它找到
Day(s)
,Hour(s)
, OrMinute(s)
它会与该单词前面的数字进行适当的乘法运算。然后它添加结果。