我在A栏中列出了很多专业,可以通过多种方式编写。在列BI中,想要搜索C列中列出的有限专业,如果列中有一个匹配,AI想要从列B中的列C返回与专业相关联的列D的值。因此对于每个匹配*teacher*
我希望1165出现在B列中。对于每个与*driver*
5468的匹配。等等。我尝试用Vlookup做到这一点,但它似乎无法处理这个问题。我转向以下内容:
=IF(ISNUMBER(SEARCH("teacher";A1));"1165";IF(ISNUMBER(SEARCH("driver";A1));"5468";IF(ISNUMBER(SEARCH("postman";9874));"1";" ")))
这可以做到这一点,但我想知道是否有更优雅的方式?而不是将所有内容放在非常长的嵌套if语句中......
A B C D
Driver ? Teacher 1165
Teacher ? Driver 5468
Truckdriver ? Postman 9874
Works as teacher ?
Driver ?
Postman ?
Works as postman ?
Teacher ?
答案 0 :(得分:0)
我认为你要做的事情需要大量的嵌套if语句,如果你试图严格使用公式和现在的VBA。如果你设置不同,你可以使用hlookup来做到这一点。评论并告诉我你是否希望我告诉你如何做到这一点。
但是,由于您使用excel-vba作为标记,我相信您正在寻找vba解决方案。一种方法是这样的:
for each cell in range("D1:D3")
for each cell2 in range("A1:A8")
if cell2.value = cell.value then cell2.offset(0,1).value = cell.offset(0,1).value
next
next
请注意,这不是您在模块中编写的所有内容,但它是一个良好的开端。此外,需要更改范围以适应保留值的任何范围。
并且偏移量假设您需要的数据是右侧的一列(例如,对于教师,cell.offset(0,1)将为1165。