我正在尝试对两个不同的单元格执行索引匹配函数,其中的时间值为 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 区分秒或十分之一、百分之一和千分之一秒的深度,所以你会失去三个有效位,而且我还没有弄清楚相对于秒的细分,这会把你放在哪里。)