【问题标题】:Excel match two columns and output thirdExcel匹配两列并输出第三个
【发布时间】:2013-07-24 16:38:14
【问题描述】:

我想要一个迭代第一列和第二列并返回第三列的公式

第 1 列 = "a" AND 第 2 列 = “d”

公式应该返回对应行第三列的值,在这种情况下 应该是 3。否则,它应该输出 0。

【问题讨论】:

  • 那么只有第一行的目标单元格会返回bo,其他的都会返回0?
  • 没有。我想要一个公式,如果 column1 和 column2 匹配,则返回“bo”,否则返回“0”
  • @Matt 所以等等,你想将结果硬编码为“bo”还是应该是“bo”,因为这是第 3 列中的内容

标签: excel excel-2007 excel-formula


【解决方案1】:

你可以使用公式:

=IF(MATCH("foo",A1:A4,0)=MATCH("bar",B1:B4,0),INDEX(C1:C4,MATCH("bar",B1:B4,0)),0)

当然,您可以更改公式中的"foo""bar" 文本以使用另一个单元格引用。无论如何,这至少应该让你开始。

编辑:

如果"bar"B列中只找到一次,那么你可以使用

=IF(INDIRECT("A"&MATCH("bar",B1:B4,0))="foo",INDEX(C1:C4,MATCH("bar",B1:B4,0)),0)

最后一件事,对于这两种情况,如果在 B 列中从未找到 "bar" ,它将返回 #N/A 如果您想更改它,您可以将整个内容包装在 IFERROR() 语句中并返回您的 0 。

【讨论】:

  • 这就是我要找的。但是,如果我在第一列中有多个匹配项,则它不起作用。我试图将匹配模式更改为 1,但这会产生奇怪的行为。
  • @Matt 多个匹配项,例如您不止一次将“foo”和“bar”放在一起?
  • 不,它们只一起出现一次,但是第1列有很多“foo”
  • @Matt 第 2 列中可以有多个“条”吗?
【解决方案2】:

我想,你正在寻找这样的东西,假设第 1 列是 A1,第 2 列是 B1:

=IF(AND(A1="foo",B1="bar"),"bo",0)

如果您有多个需要第 3 列的值,您可以为第二行执行嵌入式 if 语句:

=IF(AND(A1="foo",B1="bar"),"bo",IF(AND(A1="fui",B1 = "bas"),"bis",0))

基本上你会得到 0,你写下一个 if 语句,它会一直运行,直到它达到 true 或默认为 0。

【讨论】:

  • 我需要把它应用到一个范围内
【解决方案3】:

我不认为 Excel 有这个功能。 如果您正在查找数字,有一个解决方法:

=IF(COUNTIFS($A$1:$A$4,"a",$B$1:$B$4,"d") = 1, SUMIFS($C$1:$C$4,$A$1:$A$4,"a",$B$1:$B$4,"d"), "ERR")

如果只有一个匹配,这将产生数字,如果没有或很多匹配,则产生"ERR"。如果您尝试使用它来查找文本,它将返回 0。

【讨论】:

    【解决方案4】:

    这是你需要的吗?

    =IF(AND(A1="foo",B1="boo"),"boo",0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多