与VLOOKUP嵌套的IF公式

在单元格D5中:

=IF(VLOOKUP(C5,'store1'!$F$4:$F$29,1)=C5,"store1","")&(IF(VLOOKUP(C5,'store2'!$F$4:$F$29,1)=C5,"\store2","")&(IF(VLOOKUP(C5,'store3'!$F$4:$F$29,1)=C5,"\store3","")&(IF(VLOOKUP(C5,'store4'!$F$4:$F$29,1)=C5,"\store4","")&(IF(VLOOKUP(C5,'store5'!$F$4:$F$29,1)=C5,"\store5","")&(IF(VLOOKUP(C5,'store6'!$F$4:$F$29,1)=C5,"\store6","")&(IF(VLOOKUP(C5,'store7'!$F$4:$F$29,1)=C5,"\store7","")&(IF(VLOOKUP(C5,'store8'!$F$4:$F$29,1)=C5,"\store8","")&(IF(VLOOKUP(C5,'store9'!$F$4:$F$29,1)=C5,"\store9","")&(IF(VLOOKUP(C5,'store10'!$F$4:$F$29,1)=C5,"\store10","")))))))))) 

我有十个商店工作人员名单和一个“所有店员工名称”表。 有时几个员工在两家商店工作,并用store1刷卡store2或store3或其他。

我想要的是,如果某个员工在多个商店工作,然后在“所有店员工姓名”表中存储(即工作表名称)号码。

例如:所有商店的“所有商店员工姓名”c5到c30是A到Z字母表,f4到f29 A到Z字母表。

公式工作但不正确,A到M显示#N/A

如果在任何商店中找不到该员工,那该商店就是一个错误。 查找一个简单存在的值的最有效的方法是MATCH函数 (甚至比COUNTIF更有效),但是您需要检查MATCH是否返回行号,或者是否find匹配的#N/A错误。 ISNUMBER函数可以确定。

 =MID(IF(ISNUMBER(MATCH(C5, store1!$F$4:$F$29, 0)), "\store1", "") &IF(ISNUMBER(MATCH(C5, store2!$F$4:$F$29, 0)), "\store2", "") &IF(ISNUMBER(MATCH(C5, store3!$F$4:$F$29, 0)), "\store3", "") &IF(ISNUMBER(MATCH(C5, store4!$F$4:$F$29, 0)), "\store4", "") &IF(ISNUMBER(MATCH(C5, store5!$F$4:$F$29, 0)), "\store5", "") &IF(ISNUMBER(MATCH(C5, store6!$F$4:$F$29, 0)), "\store6", "") &IF(ISNUMBER(MATCH(C5, store7!$F$4:$F$29, 0)), "\store7", "") &IF(ISNUMBER(MATCH(C5, store8!$F$4:$F$29, 0)), "\store8", "") &IF(ISNUMBER(MATCH(C5, store9!$F$4:$F$29, 0)), "\store9", "") &IF(ISNUMBER(MATCH(C5, store10!$F$4:$F$29, 0)), "\store10", ""), 2, 99) 

我已经将反斜杠添加到所有商店值,并从结果中删除第一个反斜杠,而不pipe哪个商店提供它。

您可以在公式中保留“空白”(例如换行符和空格),以便在工作表的公式栏中可以更好地理解它。 这个公式可能看起来很复杂,但实际上它甚至比最基本的数组公式要less得多。