将 3 个单元格连接成 HH:MM:SS 的时间函数替代方案
Time function alternative to concatenate 3 cells into HH:MM:SS
我想知道是否还有另一个 excel 函数可以用来将 3 个数字组合成格式为 (hh:mm:ss) 的时间。
时间功能很好,但下面的例子显示了一个问题,它不能超过 24 小时。
我曾尝试将单元格重新格式化为 [HH]:MM:SS,但遗憾的是这似乎不起作用。网上查资料说这是时间功能的限制。
公式:
=TIME(
Hour:
FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7)))),
Minute:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 60;60)),
Second:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 3600;60))
)
M7= (Int) Some distance, 15 or 25 for example.
Z7= (Percent) Some percentage, 5% or 25 for example.
Y7= (Float) For ex. 1,0
ts_0= (Float) For ex. 1,0
问题:
示例良好结果:01:29:27 (01,29,27)
Expected Output: 01:29:27
Actual Output: 01:29:27
示例错误结果:01:27:17 (25,27,17)
Expected Output: 25:27:17
Actual Output: 01:27:17
我找到了解决办法!
=TEXT(CONCATENATE(':',A1,B1;C1);'[HH]:MM:SS')
然后将每个单元格引用 (A1、B1、C1) 更改为您的公式。
所以对我来说它看起来像这样,
函数文本:
=TEXT(
函数连接:
=concatenate(":",,
A1:
FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7)))),
B1:
FLOOR(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 60;60)),
C1:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 3600;60))
连接结束括号:
)
文本结尾和格式:
;"[HH]:MM:SS")
注意,
如果您想超过 24 小时,请务必在括号内包含小时格式。
你的公式似乎非常复杂。
尝试:=A2/24+B2/1440+C2/86400
自定义单元格格式为[hh]:mm:ss
我想知道是否还有另一个 excel 函数可以用来将 3 个数字组合成格式为 (hh:mm:ss) 的时间。
时间功能很好,但下面的例子显示了一个问题,它不能超过 24 小时。
我曾尝试将单元格重新格式化为 [HH]:MM:SS,但遗憾的是这似乎不起作用。网上查资料说这是时间功能的限制。
公式:
=TIME(
Hour:
FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7)))),
Minute:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 60;60)),
Second:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 3600;60))
)
M7= (Int) Some distance, 15 or 25 for example.
Z7= (Percent) Some percentage, 5% or 25 for example.
Y7= (Float) For ex. 1,0
ts_0= (Float) For ex. 1,0
问题:
示例良好结果:01:29:27 (01,29,27)
Expected Output: 01:29:27
Actual Output: 01:29:27
示例错误结果:01:27:17 (25,27,17)
Expected Output: 25:27:17
Actual Output: 01:27:17
我找到了解决办法!
=TEXT(CONCATENATE(':',A1,B1;C1);'[HH]:MM:SS')
然后将每个单元格引用 (A1、B1、C1) 更改为您的公式。
所以对我来说它看起来像这样,
函数文本:
=TEXT(
函数连接:
=concatenate(":",,
A1:
FLOOR((20/3 + (M7 - 20) / (3 * (IF(M7 < 20,ts_0,Y7)+Z7)))),
B1:
FLOOR(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 60;60)),
C1:
ROUND(MOD(((20/3) + ((M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7) + Z7))) - FLOOR((20/3 + (M7 - 20) / (3 * (
IF(M7 < 20,ts_0,Y7)+Z7))))) * 3600;60))
连接结束括号:
)
文本结尾和格式:
;"[HH]:MM:SS")
注意, 如果您想超过 24 小时,请务必在括号内包含小时格式。
你的公式似乎非常复杂。
尝试:=A2/24+B2/1440+C2/86400
自定义单元格格式为[hh]:mm:ss