Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 检查VLOOKUP中的一位、两位或三位数字_Excel_Excel Formula - Fatal编程技术网

Excel 检查VLOOKUP中的一位、两位或三位数字

Excel 检查VLOOKUP中的一位、两位或三位数字,excel,excel-formula,Excel,Excel Formula,我有大约30个数字,分别是1、2或3位数字,它们是代码。这些代码附在其他数字的前面。我想知道数字前面是什么代码,例如,对于数字35467036,前两位数字与代码35匹配。所以我希望它的输出是1.5 这是我当前的设置,我有一个表,表中有所有代码,后面是下一列中的输出。如果所有的代码都是三位数的话,我可以这样做=VLOOKUP((左(E6,3)和“*”),D1:E3,2,FALSE),但不幸的是它们不是 我也尝试过使用嵌套的IF语句,但我只能达到7个级别 这只能在VBS中实现,还是有其他方法 编辑:

我有大约30个数字,分别是1、2或3位数字,它们是代码。这些代码附在其他数字的前面。我想知道数字前面是什么代码,例如,对于数字
35467036
,前两位数字与代码
35
匹配。所以我希望它的输出是
1.5

这是我当前的设置,我有一个表,表中有所有代码,后面是下一列中的输出。如果所有的代码都是三位数的话,我可以这样做
=VLOOKUP((左(E6,3)和“*”),D1:E3,2,FALSE)
,但不幸的是它们不是

我也尝试过使用嵌套的IF语句,但我只能达到7个级别

这只能在VBS中实现,还是有其他方法

编辑:


代码列的格式为文本。如果我在左侧输入值3,则两位数字无效。是否有任何我可以让它工作的1,2和3位代码?此外,代码不会重叠,例如,代码表中不会有96和965。作为限制,七个嵌套的IF指向非常旧版本的Excel。您可能想考虑升级到本世纪仍然支持的版本。

但您的主要问题是查找值的数据类型是文本,因为您使用通配符连接字符串。而查找表的第一列可能由数字组成

为了解决这个问题,您需要在查找表中添加一个文本列,将数值表示为文本值

如果要使用Vlookup,则该helper列必须是查找范围的第一列

您可以使用索引/匹配而不是Vlookup来独立于列顺序,如此屏幕截图所示:

H列显示了G列中应用的公式

编辑:

根据您发布的屏幕截图,您希望从E列到F列中的表中查找,该表中只有短代码。因此,在查找值中添加通配符是没有意义的。您只需要提取要用于查找的值

如果只想查找两位数字,则只需提取两位数字。添加通配符不会删除第三个数字

在下面的屏幕截图中,一个helper列向LEFT()函数提供要提取的字符数,然后在VLookup中使用该值

=VLOOKUP(LEFT(A1,B1),$E$1:$F$5,2,FALSE)

=索引(LookupValues,Small(arrayofrowsfromfromifstatements,FirstRow))

这是一个数组公式,因此您需要在公式栏中使用Ctrl+Shift+Enter

我们使用If构建条件匹配的行号数组,如果条件不匹配,则返回FALSE。然后,小函数返回数组中最小的结果,这将是条件匹配的第一行

然后,我们对返回该行号的结果进行索引(从行中减去-1以抵消标题)


如果A列中的数字始终为6位数+代码长度,则可以使用此选项:

=VLOOKUP(--LEFT(A1,LEN(A1)-6),E2:F5,2,FALSE)

谢谢您的回复,我尝试过使用索引,但它只能使用3位代码。我是否也可以将其调整为1和2?我在问题中添加了一个包含更多信息的屏幕截图。在查看了您的屏幕截图后,我用另一个建议编辑了我的答案。我假设情况会是这样,我必须稍微更改我的工作流程才能完成“帮助者”列,但必须这样做。谢谢你的帮助,我真的很感激!其他数字是否保留了固定长度或可变长度的代码部分(即数字的数量)。@skkakkar没有代码的数字长度不同。
=VLOOKUP(--LEFT(A1,LEN(A1)-6),E2:F5,2,FALSE)