带有修改测试的excel垂直查找

带有修改测试的excel垂直查找,excel,vlookup,Excel,Vlookup,我在一张表格(我们称之为结果表)中有数据,在B栏中有课程名称,有时(但不总是)后跟日期。例如,我可能有: long lab 或 我使用vlookup将课程名称与另一张表(我们称之为表表)中的表进行匹配,以发现分数在哪张表中。例如: coursework tab name ------------------------ long lab longlab metals lab metalslab =IF(ISNUMBER(RIGHT(B7,1)),VLOOKUP(LEFT

我在一张表格(我们称之为结果表)中有数据,在B栏中有课程名称,有时(但不总是)后跟日期。例如,我可能有:

long lab

我使用vlookup将课程名称与另一张表(我们称之为表表)中的表进行匹配,以发现分数在哪张表中。例如:

coursework    tab name
------------------------
long lab      longlab
metals lab    metalslab
=IF(ISNUMBER(RIGHT(B7,1)),VLOOKUP(LEFT(B7,LEN(B7)-12), tablesheet!$A$1:$B$10, 2, FALSE),VLOOKUP(B7,tablesheet!$A$1:$B$10, 2, FALSE))
如果每门课程的最后都有一个日期,我可以用

=vlookup(left(b7,len(b7)-12), tablesheet!$A$1:$B$10, 2, FALSE)
=vlookup(b7, tablesheet!$A$1:$B$10 & "*", 2, FALSE)
其中,日期假定为12个字符。但有些课程作业没有日期

我希望能够做到的是

=vlookup(left(b7,len(b7)-12), tablesheet!$A$1:$B$10, 2, FALSE)
=vlookup(b7, tablesheet!$A$1:$B$10 & "*", 2, FALSE)
我的意思是,当与结果表中的课程名称匹配时,在表格中的课程名称末尾放一张通配符。但这不是一个法律概念


有人知道这样做的诀窍吗?

只要把这个公式放在IF公式里就行了。例如:

coursework    tab name
------------------------
long lab      longlab
metals lab    metalslab
=IF(ISNUMBER(RIGHT(B7,1)),VLOOKUP(LEFT(B7,LEN(B7)-12), tablesheet!$A$1:$B$10, 2, FALSE),VLOOKUP(B7,tablesheet!$A$1:$B$10, 2, FALSE))

如果公式检查文本是否包含数据(以数字结尾)。

只需将此公式放入如果公式中即可。例如:

coursework    tab name
------------------------
long lab      longlab
metals lab    metalslab
=IF(ISNUMBER(RIGHT(B7,1)),VLOOKUP(LEFT(B7,LEN(B7)-12), tablesheet!$A$1:$B$10, 2, FALSE),VLOOKUP(B7,tablesheet!$A$1:$B$10, 2, FALSE))

如果公式检查文本是否包含数据(以数字结尾)。

假设日期总是以数字开头,那么这应该对您有用:
=VLOOKUP(TRIM(LEFT(B7,MIN)(FIND({1,2,3,4,5,6,7,8,9,0},B7和1234567890)),表!$a$1:$B$10,2,FALSE)
谢谢。我明白了。不幸的是,有些课程名称包括数字,如“拉伸测试1”和“拉伸测试2”。假设日期总是以数字开头,那么这对你来说应该是可行的:
=VLOOKUP(TRIM(左(B7,MIN)(FIND({1,2,3,4,5,6,7,8,9,0},B7和1234567890)),表表!$a$1:$B$10,2,FALSE)
谢谢。我明白了。不幸的是,有些课程名称包括数字,如“拉伸测试1”和“拉伸测试2”。谢谢。由于一些课程名称以数字结尾,因此需要进行一些调整。如果字符串在2016年或2017年结束,那么它将是一个日期,因此我可能会修改您的right()语句来捕捉它。是的,您是对的,顺便说一句,您可以使用right(B7,4)来确保最后4个字符是numberThanks。由于一些课程名称以数字结尾,因此需要进行一些调整。如果字符串在2016年或2017年结束,那么它将是一个日期,因此我可能会修改您的right()语句来捕捉它。是的,您是对的,顺便说一句,您可以使用right(B7,4)来确保最后4个字符是数字