两个不同单元格中的时间值相同,但十进制值不同,无法匹配

两个不同单元格中的时间值相同,但十进制值不同,无法匹配

我正在尝试对两个不同的单元格执行索引匹配函数,其中的时间值为 08:30:00。我始终没有找到匹配项,经过长时间的搜索,我发现两个单元格的值之间只有微小的差异。顺便说一下,它们位于两个不同的列中,但似乎具有相同的格式。对此有任何合理的解释吗?有没有什么方法可以避免这种情况?

08:30:00
one cell decimal value     0,35416666666666700
other cell decimal value   0,35416666666666600

答案1

您可以使用该ROUND函数使时间与您喜欢的增量相匹配。因此,如果您想将时间匹配到最接近的 1/1000 秒,请将时间值四舍五入到第 8 位。例如=ROUND(A1,8)。您应该能够在比较的两边使用 Round 公式来获得匹配。

您的样本=ROUND(0,35416666666666700,8)=ROUND(0,35416666666666600,8)应该返回 True。

答案2

您也许可以使用该函数将时间转换为文本TEXT,然后将结果格式化回时间:

=TIME(A1, "hh:mm:ss")*1

这样就应该能消除所有细微的差别。

将其应用于您正在查找和匹配值的列。

答案3

Excel 不能使用超过毫秒(0.001 秒)的时间值。也就是说,小数点后 13 位是四舍五入后的值,之后的位数对四舍五入没有意义。

因此,您始终可以四舍五入到小数点后 13 位,而不会丢失任何可用的精度。

(当然,如果将其作为存储时间和日期(在本例中不是)那么这些数字将会降低 Excel 区分秒或十分之一、百分之一和千分之一秒的深度,所以你会失去三个有效位,而且我还没有弄清楚相对于秒的细分,这会把你放在哪里。)

相关内容