首先我想说的是,我不是 Excel 专家,所以我需要一些帮助。
假设我有 3 个 excel 文件:main.xlsx
和。在所有这些文件中,我都有一个名为 的列1.xlsx
。我必须:2.xlsx
Serial Numbers
- 查找全部序列号在
1.xlsx
和中2.xlsx
并验证它们是否在中main.xlsx
。
如果找到序列号:
- 在 的最后一列
main.xlsx
,与 在同一行序列号即找到写入OK + name_of_the_file_in which_it_was_found
。否则,写入NOK
。同时,在最后一列写入1.xlsx
和2.xlsx
ok
或,如果nok
序列号是否被找到。
提到:serial number
可以位于不同的列上1.xlsx
和2.xlsx
例子:
主要文件.xlsx
name date serial number phone status
a b abcd c <-- ok,2.xlsx
b c 1234 d <-- ok,1.xlsx
c d 3456 e <-- ok,1.xlsx
d e 4567 f <-- NOK
e f g <-- skip,don't write anything to status column
1.xlsx
name date serial number phone status
a b 1234 c <-- OK (because is find in main)
b c lala d <-- NOK (because not find in main)
c d 3456 e <-- OK (because find main)
d e jjjj f <-- NOK (because not find in main)
e f g <-- skip,don't write anything to status column
2.xlsx
name date serial number phone status
a b c <-- skip,don't write anything to status column
b c abcd d <-- OK (because find main)
c d 4533 e <-- NOK (because not find in main)
d e jjjj f <-- NOK (because not find in main)
e f g <-- skip,don't write anything to status column
我知道我可以使用VLOOKUP
或者,MATCH
但是我对 Excel 公式不太熟悉。
答案1
我们将使用以下函数的组合:
ISBLANK
检查单元格是否有值,如果没有,我们将跳过它并且结果状态将为空。VLOOKUP
在另一个文件的另一个表中查找值。我们可以使用这个LOOKUP
函数,但它存在问题,并且VLOOKUP
允许我们指定我们想要的精确匹配。ISERROR
检查是否VLOOKUP
找到匹配或返回错误。
在状态列的main.xlsx
第一行中使用以下公式,并应用于其下方的其余行:
=IF(ISBLANK(C2),"",IF(ISERROR(VLOOKUP(C2,[1.xlsx]Sheet1!$C:$C,1,FALSE)),IF(ISERROR(VLOOKUP(C2,[2.xlsx]Sheet1!$C:$C,1,FALSE)),"NOK","ok,2.xslx"),"ok,1.xslx"))
在状态列中1.xslx
,2.xlsx
在第一行使用此公式并应用于其下方的其余行:
=IF(ISBLANK(C2),"",IF(ISERROR(VLOOKUP(C2,[Main.xlsx]Sheet1!$C:$C,1,FALSE)),"NOK","OK"))
注意:公式引用 C 列,因为根据您提供的示例,序列号位于那里。