在单元格B2中,我使用以下方法从单元格中拉出一些字符:
=MID($A2,27,2)
然后我想在VLOOKUP中使用结果:
=VLOOKUP(B2,Sheet2!A1:D97,3,0)
这导致#N / A ....如果我将公式的结果改写为单元格B2,那么它可以正常工作。我究竟做错了什么??字符串函数不能以这种方式使用吗?
答案 0 :(得分:1)
您正在寻找Sheet2中的数字!A:A并希望从相同工作表的C列返回相对于A列匹配的值。
然而,虽然MID($A2,27,2)
返回看起来像数字的文本,但它仍然会返回文本而你无法通过提供类似于数字的文本来查找数字,除非你正在使用其中一个重度过度的函数,如COUNTIF。
将MID($A2,27,2)
转换为B2公式中的真实数字,如=--MID($A2,27,2)
或VLOOKUP function中的
=VLOOKUP(VALUE(B2), Sheet2!A$1:D$97, 3, FALSE)
在此公式中,VALUE function与Double Unary具有相同的用途。
根据需要填写。
答案 1 :(得分:1)
鉴于声誉不佳,我无法在评论中回答。
检查您的数据类型 - 您可能会遇到一些问题。通常,可以在vlookups等中使用字符串函数。
例如,我在单元格A1中有一个数字1234。然后在B1中我有= MID(A1,2,2),这导致一个字符串(不是数字)23。然后在C1中我输入了23,结果是23(不是字符串)。然后在D1中我有= VLOOKUP(B1,C1,1,0),这导致#N / A,因为他找不到与字符串B1和数字C1的匹配。另一方面,在E1中我有= VLOOKUP(B1 * 1,C1,1,0),结果为23,因为他可以找到B1 * 1之间的匹配(字符串' 23'和数字1的乘法导致转换为23号和23号。
答案 2 :(得分:0)
如果Tom指出的字符少于28个字符,则VLOOKUP无法匹配。
如果您使用IFERROR功能,您可以用您选择的值替换#N / A.
=IFERROR(VLOOKUP(B2,Sheet2!A1:D97,3,0),"String Not Valid")