Excel公式如何匹配另一个单元格的最后2或3个字符?

3

假设我有一列A中的值如下:

A-1-167

AB-21-16

A-1-BB-17

B-1-89

共同点是在最后一个短横线后面可能有两个或三个数字。

在B列中,我将有关于每个左侧A单元格的信息。

在另一个表中,我有两列:A包含两个或三个数字;对于B,我需要一个公式,例如:

如果A的值为89,则我想要位于其他表格B列中的B-1-89的信息。也就是说,我需要一种方法来识别第一个表格A列中最后一个短横线后面的数字。

非常感谢您的帮助!

3个回答

2
用简单的公式来说:
VLOOKUP允许使用通配符:
=VLOOKUP("*-" & D1,A:B,2,FALSE)

""*-"会添加通配符和-到D1中的任何内容。因此,它只会查看最后一组。"

enter image description here


2
C1输入:
=--MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,255)

请复制下来。第C列提取了短横线后面的短语:

enter image description here

现在我们可以使用MATCH()INDEX()函数。将查找值放入D1中,然后在E1中输入以下公式:

=INDEX(B1:B4,MATCH(D1,C1:C4,0))

enter image description here


你的解决方案比我的更灵活,因为它不依赖于最终字段的长度是2或3。 - John Coleman
@JohnColeman 两种方案都不错……关键是要隔离出最后一个数字集合。 - Gary's Student
=VLOOKUP("*-" & D1,A:B,2,FALSE) - Scott Craner

2
如果始终为2或3位数字,您可以检查最后3个字符是否以-开头,并相应地采取行动:
B1(或您想要的任何列)中的关键公式是:
=IF(MID(TRIM(A1),LEN(TRIM(A1))-2,1) = "-",RIGHT(TRIM(A1),2),RIGHT(TRIM(A1),3))

(TRIM是为了防止意外的尾随空格引起计数错误)

输出(复制后):

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接