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 使用 80017.00 使用 1700,等等

然后对于您的时间,使用公式:=D2-C2-100100 为 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 函数中使用通配符。我不知道如何使用它们。