正确(text; 5)与5个字符的文本不一样

我有一个匹配function,我无法工作。 我把它解释为无法find合适的匹配,因为值显然不一样。

单元格D59中的值为21337。 在单元格S59中,我有这样的函数:右($ d59; 5),它显示21337.然而,当我input一个单元格:= D59 = S59我得到返回FALSE。

我使用Right()函数,因为D列中的单元格包含连续的值,最后5个值是重要的。 例如D60包含21337 – 21448,其中21448是我想要匹配的值。

任何人都有可能是什么问题的线索?

没有格式化,你会看到21337是正确的alignment – 显示这是一个数字,并被视为Excel的数字。
另一方面, Right($d59;5)将显示左alignment的数字,表示返回的值被Excel视为文本。

如果您尝试Right($d59;5)*1 Excel将隐式地将该值转换回数字(由于执行了计算),并且两个值将相等。

正如Brian所指出的,要明确转换,使用VALUE(Right($d59;5))

如果使用“公式”>“评估公式”,是否显示倒数第二个评估为21337="21337"

LEFT(..)函数将数字转换为一个string,而string和数字不会相等。 尝试使用=TEXT(D59,"#")=S59=D59=N(Left(S59))来进行比较转换,或将S59中的代码更改为=N(Right($D59,5)) S59显示一个数字

(N(..)函数将string转换为数字,如果不是数字则返回0)