Excel 数字通配符
Excel Numerical Wildacard
我确定这应该很简单,但我想不通。
有没有办法在数字列表中搜索部分匹配项,仅限数字。
在下面的示例中,我从结束时间中减去开始时间,得到工作时间减去 1 小时的午餐时间。我想将半小时的 .3 转换为 .5 以进行准确计算,因此想出了这个公式 =IF(E2=*.3,E2+0.2,E2) 但 excel 不断更改我的公式到 =IF(E2=0.3,E2+0.2,E2)
这个公式似乎只有在我通过手动输入使 E(小时列)的值为 0.3 时才有效,从计算中获得相同的值 0.3 似乎不会触发 IF 语句。
Date Day Start Finish Hours -1 Appox Days Pay
20/04/17 Thursday 08.00 17.00 8 £60.80
28/04/17 Friday 08.00 18.30 9.3 £70.68
根据您的要求,类似此公式的内容应该适合您(确保将单元格格式设置为 General
而不是 Time
):
=TIME(INT(E2),MOD(E2,1)*100,0)*24
这会将小数部分转换为所需的分数。
例如,9.3 = 9:30,则此公式的结果将是 9.5,即 9 又 1/2 小时。
再举一个例子,8.45 = 8:45,8又3/4小时,这个公式的结果就是8.75。
它还会将普通的旧 8 保留为 8(8 小时 0 分钟)
我认为主要问题在于 Excel 如何解释您的数据。我可以提出另一个想法吗?
将您的 Start/Finish/Hours - 1 列格式化为此自定义格式:0":"00
.
然后,根据您的时间,08.00
使用 800
,17.00
使用 1700
,等等
然后对于您的时间,使用公式:=D2-C2-100
(100
为 1 小时)。那应该可以满足您的需求。
然后您可以根据需要调整您的付款计算。
您可以先将数字转换为文本,然后使用FIND函数检查数字中是否存在“.3”。如果它不存在,它将带来一个 VALUE 错误,可以使用 IFERROR 函数绕过该错误。为了您的目的,如果 E2 包含 9.3,则以下将 return 9.5:
=IF(IFERROR(FIND(".3",TEXT(E2,"0.00")),0)<>0,E2+0.2,E2)
您可以尝试在 FIND 函数中使用通配符。我不知道如何使用它们。
我确定这应该很简单,但我想不通。
有没有办法在数字列表中搜索部分匹配项,仅限数字。
在下面的示例中,我从结束时间中减去开始时间,得到工作时间减去 1 小时的午餐时间。我想将半小时的 .3 转换为 .5 以进行准确计算,因此想出了这个公式 =IF(E2=*.3,E2+0.2,E2) 但 excel 不断更改我的公式到 =IF(E2=0.3,E2+0.2,E2)
这个公式似乎只有在我通过手动输入使 E(小时列)的值为 0.3 时才有效,从计算中获得相同的值 0.3 似乎不会触发 IF 语句。
Date Day Start Finish Hours -1 Appox Days Pay
20/04/17 Thursday 08.00 17.00 8 £60.80
28/04/17 Friday 08.00 18.30 9.3 £70.68
根据您的要求,类似此公式的内容应该适合您(确保将单元格格式设置为 General
而不是 Time
):
=TIME(INT(E2),MOD(E2,1)*100,0)*24
这会将小数部分转换为所需的分数。
例如,9.3 = 9:30,则此公式的结果将是 9.5,即 9 又 1/2 小时。
再举一个例子,8.45 = 8:45,8又3/4小时,这个公式的结果就是8.75。
它还会将普通的旧 8 保留为 8(8 小时 0 分钟)
我认为主要问题在于 Excel 如何解释您的数据。我可以提出另一个想法吗?
将您的 Start/Finish/Hours - 1 列格式化为此自定义格式:0":"00
.
然后,根据您的时间,08.00
使用 800
,17.00
使用 1700
,等等
然后对于您的时间,使用公式:=D2-C2-100
(100
为 1 小时)。那应该可以满足您的需求。
然后您可以根据需要调整您的付款计算。
您可以先将数字转换为文本,然后使用FIND函数检查数字中是否存在“.3”。如果它不存在,它将带来一个 VALUE 错误,可以使用 IFERROR 函数绕过该错误。为了您的目的,如果 E2 包含 9.3,则以下将 return 9.5:
=IF(IFERROR(FIND(".3",TEXT(E2,"0.00")),0)<>0,E2+0.2,E2)
您可以尝试在 FIND 函数中使用通配符。我不知道如何使用它们。