【问题标题】:Excel Numerical WildacardExcel 数字通配符
【发布时间】:2017-05-09 19:09:01
【问题描述】:

我确定这应该很简单,但我想不通。

有没有办法在数字列表中搜索部分匹配项,仅限数字。

在下面的示例中,我从完成时间中减去开始时间,得到工作时间减去 1 小时的午餐时间。我想将半小时的 0.3 转换为 0.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

【问题讨论】:

    标签: excel formula numeric


    【解决方案1】:

    根据您的要求,此公式应该适合您(确保将单元格格式设置为 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.75 8 和 3/4 小时。

    它还会将普通的旧 8 保留为 8(8 小时 0 分钟)

    【讨论】:

    • 很好地使用了Mod()Time() :D 我没想过要尝试,而是更关注格式“问题”...
    • 感谢您对原始帖子的编辑,感谢您提供的解决方案。
    【解决方案2】:

    我认为主要问题在于 Excel 如何解释您的数据。我可以提出另一个想法吗?

    将您的开始/完成/小时 - 1 列格式化为这种自定义格式:0":"00

    然后,对于您的时代,使用800 代表08.001700 代表17.00,等等。

    那么对于你的小时数,使用公式:=D2-C2-100100 是 1 小时)。这应该会为您提供所需的内容。

    然后您可以根据需要调整付款计算。

    【讨论】:

    • 感谢 bruce 的意见,我试用了您的系统,但发现自动计算的大约天数工资超出范围,因此我选择了 Tigers 解决方案
    【解决方案3】:

    您可以先将数字转换为文本,然后使用 FIND 函数检查数字中是否存在“.3”。如果不存在会带来VALUE错误,可以使用IFERROR函数绕过。出于您的目的,如果 E2 包含 9.3,则以下内容将返回 9.5:

    =IF(IFERROR(FIND(".3",TEXT(E2,"0.00")),0)<>0,E2+0.2,E2)
    

    您可以尝试在 FIND 函数中使用通配符。我不知道如何使用它们。

    【讨论】:

    • 感谢您的回复,当我有更多时间时,我会探索您的解决方案,因为它可能会派上用场
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多