Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 找出两次之间的差值,然后乘以一个值_String_Excel_Time_Excel Formula_Worksheet Function - Fatal编程技术网

String 找出两次之间的差值,然后乘以一个值

String 找出两次之间的差值,然后乘以一个值,string,excel,time,excel-formula,worksheet-function,String,Excel,Time,Excel Formula,Worksheet Function,我想计算两次乘以另一列中的值的差值。我的专栏如下: Column A Column B Column C 1 09:00 - 21:00 2 我希望我的C列返回24,因为A列中的时差是12小时,B列中的乘数是2 请尝试: =B1*24*(MID(A1,FIND("-",A1)+2,LEN(A1))-LEFT(A1,5)) 下面是另一种方法,它使用T

我想计算两次乘以另一列中的值的差值。我的专栏如下:

       Column A                Column B             Column C
1    09:00 - 21:00                 2                    
我希望我的C列返回
24
,因为A列中的时差是12小时,B列中的乘数是
2

请尝试:

=B1*24*(MID(A1,FIND("-",A1)+2,LEN(A1))-LEFT(A1,5))

下面是另一种方法,它使用
TIMEVALUE()
来防止连字符周围的格式包含空格

=(TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("-",A1)))-TIMEVALUE(LEFT(A1,FIND("-",A1)-1)))*24*B1
如上面的评论所述,您最好将它们放在单独的列中,但这些公式仍然有效

如果要减去在午夜(00:00)拆分的时间,可以使用
MOD(XXX,24)
公式强制时钟算法。这将防止负面影响。这也意味着差值永远不能大于24(在乘以B列之前)


更简单的方法是,当您从文件中读入
09:00-21:00
时,将其解析为两个独立的列。如果你完全在Excel中完成这项工作,那么这肯定不是解决问题的方法。如果下面的答案不明显,Excel中的时间差是以天为单位的。你需要乘以24才能得到小时数。谢谢你。。。但当我尝试将A列更改为21:00-1:00时,它将显示负值…如何让结果返回4?此时,您必须对可能的值进行一些假设。因为我们在做“时钟”运算,所以它不像求绝对值那么简单。一种选择是寻找一个负数并在乘以B列之前加上24。另一种选择(如果我们同意时间间隔不能超过24小时)是使用模运算符强制“时钟”运算。这个公式是:
=MOD((时间值(右(A1,LEN(A1)-FIND(“-”,A1)))-TIMEVALUE(左(A1,FIND(“-”,A1)-1))*24,24)*B1
=MOD((TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("-",A1)))-TIMEVALUE(LEFT(A1,FIND("-",A1)-1)))*24,24)*B1