比较不同 excel 文件中的列,如果匹配,则将状态附加到最后一列(同一行)

比较不同 excel 文件中的列,如果匹配,则将状态附加到最后一列(同一行)

首先我想说的是,我不是 Excel 专家,所以我需要一些帮助。

假设我有 3 个 excel 文件:main.xlsx和。在所有这些文件中,我都有一个名为 的列1.xlsx。我必须:2.xlsxSerial Numbers

  • 查找全部序列号1.xlsx和中2.xlsx并验证它们是否在中main.xlsx

如果找到序列号:

  • 在 的最后一列main.xlsx,与 在同一行序列号即找到写入OK + name_of_the_file_in which_it_was_found。否则,写入NOK。同时,在最后一列写入1.xlsx2.xlsx ok或,如果nok序列号是否被找到。

提到serial number可以位于不同的列上1.xlsx2.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.xslx2.xlsx在第一行使用此公式并应用于其下方的其余行:

=IF(ISBLANK(C2),"",IF(ISERROR(VLOOKUP(C2,[Main.xlsx]Sheet1!$C:$C,1,FALSE)),"NOK","OK"))

注意:公式引用 C 列,因为根据您提供的示例,序列号位于那里。

相关内容