背景

经常接到运营这样的需求,给我一列数据,查库之后筛选之后得到 B 列数据,并在 C 列标记出 A 列哪些数据存在于 B 列中。

需求演示

方式1:VLOOKUP

使用 VLOOKUP 函数,如下例如在 C2 单元格输入以下公式,其他单元格直接拖拽。

=IF(ISERROR(VLOOKUP(A2,B:B,1,FALSE)),0,1)

由于用到三个函数,下图展示每一个函数的功能:

VLOOKUP函数

下面是三个函数的说明,有兴趣看下~

VLOOKUP 函数

VLOOKUP(A2, B:B, 1, FALSE) 尝试在列 B 中查找 A2 单元格中的值。

  • 第一个参数 A2 是要查找的值。
  • 第二个参数 B:B 是查找的范围,这里只包括列 B
  • 第三个参数 1 表示返回查找范围内的第一列的值,由于查找范围本身就是一列,所以返回的就是找到的值本身。
  • 第四个参数 FALSE 表示进行精确匹配。

ISERROR 函数

ISERROR(VLOOKUP(...)) 检查 VLOOKUP 是否返回错误。如果 VLOOKUP 找不到 A2 中的值,则会返回一个 #N/A 错误,ISERROR 将返回 TRUE

IF 函数

IF(ISERROR(...), 0, 1) 根据 ISERROR 的结果返回 0 或 1。

  • 如果 VLOOKUP 返回错误(即没有找到匹配项),则整个公式返回 0。
  • 如果 VLOOKUP 成功找到匹配项,则返回 1。

方式2:COUNTIF

还可以使用 IF 函数结合 COUNTIF 函数来判断 A 列的某个值是否存在于 B 列,更简单一些。如果存在,就在 C 列对应的行标记为 1。例如在 C2 单元格输入以下公式:

=IF(COUNTIF(B:B, A2) > 0, 1, 0)

COUNTIF函数

COUNTIF 函数

  • COUNTIF(B:B, A2):这个函数会计算在 B 列中有多少个单元格等于 A2 的值。
  • IF(COUNTIF(B:B, A2) > 0, 1, ""):如果在 B 列中找到了 A2 的值,COUNTIF 的结果会大于 0,此时 IF 函数会返回 1;否则返回 0。

找到了 A2 的值,COUNTIF 的结果会大于 0,此时 IF 函数会返回 1;否则返回 0。

还有更好的方式欢迎讨论~

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐