如果匹配多个标准

时间:2018-02-02 09:03:49

标签: if-statement excel-formula match

Table 1

表1

|    | 1 Jan 2018 | 2 Jan 2018 | 3 Jan 2018 | 4 Jan 2018 | 5 Jan 2018 |
|----|------------|------------|------------|------------|------------|
| A1 |            |            |            |            |            |
| A2 |            |            |            |            |            |
| A3 |            |            |            |            |            |
| A4 |            |            |            |            |            |
| A5 |            |            |            |            |            |
| A6 |            |            |            |            |            |

enter image description here 表2

|----|----------|-----------|-----------|-----------|-----------|
| A1 | 3-Jan-18 | 10-Jan-18 | 17-Jan-18 | 24-Jan-18 | 31-Jan-18 |
| A2 | 3-Jan-18 | 10-Jan-18 | 17-Jan-18 | 24-Jan-18 | 31-Jan-18 |
| A3 | 3-Jan-18 | 10-Jan-18 | 17-Jan-18 | 24-Jan-18 | 31-Jan-18 |
| A4 | 3-Jan-18 | 6-Jan-18  | 10-Jan-18 | 13-Jan-18 | 17-Jan-18 |
| A5 | 3-Jan-18 | 10-Jan-18 | 17-Jan-18 | 24-Jan-18 | 31-Jan-18 |
| A6 | 3-Jan-18 | 10-Jan-18 | 17-Jan-18 | 24-Jan-18 | 31-Jan-18 |

IF MATCH

=IF(MATCH(A2,$A$27:$A$54,0) & MATCH(C1,$B$27:$S$54,0),"1","")
  • 从中获取#N / A错误
  • 尝试将公式应用于表1中的单元格以查找表2中的值
  • 如果匹配,则输出为1,否则为0

表&上面的图片清楚地说明&试验出来。 提前致谢(:

应用公式&输出 Applied Formula

1 个答案:

答案 0 :(得分:1)

首先,MATCH()会返回一个数字,表示找到匹配项的位置,因此您的公式为您的第一个潜在匹配项显示IF(1 & 1,"1",""),此处没有逻辑。

第一个修正案是强制输入真/假输出:=IF(AND(ISNUMBER(MATCH()),ISNUMBER(MATCH())),"1","")

你仍然遇到第二个匹配引用整个resuts范围的问题,你真的希望这只能查看满足第一个条件的行,为此我们将使用数组公式来构建你的数组想用:

编辑:您无法从匹配中删除数组,因为它返回一个整数:

=LARGE(IF(B$1=IF($A2=$A$27:$A$54,$B$27:$S$54),1,0),1)

这是一个数组公式,同时仍在公式栏中按 Ctrl + Shift + Enter < / p>

内部IF() statemnet正在构建每行的数组,提供列A匹配的值,而不提供FALSE的值。然后,out IF()语句将评估0或1是否在新数组中找到日期...

我已经将它包装在LARGE()中以返回第一个最大数字,所以如果找到一个匹配,它将返回1.如果你想要空白,你可以将整个事物包装在另一个{{1}声明; IF()