我有一个我无法工作的匹配功能。我把它煮沸到可以找不到合适的匹配点,因为值显然是不相同的。
我在单元格D59中有值21337。在单元格S59中,我有以下功能:右($ d59; 5),显示21337.但是当我输入一个单元格时:= D59 = S59我得到返回FALSE。
我使用Right()函数,因为D列中的单元格包含连接值,其中最后5个值很重要。例如,D60包含21337 - 21448,其中21448是我想要匹配的值。
任何人都知道可能出现什么问题?
答案 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)