右(文本; 5)与5个字符的文本不同

时间:2016-10-26 10:22:04

标签: excel excel-formula

我有一个我无法工作的匹配功能。我把它煮沸到可以找不到合适的匹配点,因为值显然是不相同的。

我在单元格D59中有值21337。在单元格S59中,我有以下功能:右($ d59; 5),显示21337.但是当我输入一个单元格时:= D59 = S59我得到返回FALSE。

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

任何人都知道可能出现什么问题?

2 个答案:

答案 0 :(得分:2)

如果没有格式化,您会看到21337右对齐 - 显示这是一个数字并被Excel视为数字。
另一方面,- (void)setupProfileidURL:(NSString *)profileToken { NSString *encoded_profileToken = [profileToken stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; NSString *user_login_url = [applicationEnvironment get_user_api_url]; BASEURL = [[user_login_url stringByAppendingString:@"Account/GetProfileDetails?profileToken="] stringByAppendingString:encoded_profileToken]; NSLog(@"Base URL: %@", BASEURL); } 将显示左对齐的数字,表示Excel返回的值被视为文本。

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

如布莱恩所指出的,要明确转换,请使用Right($d59;5)*1

答案 1 :(得分:0)

如果您使用" Formula" > "评估公式",它是否将倒数第二个评估显示为21337="21337"

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

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