If statement 如果符合多个条件
表1If statement 如果符合多个条件,if-statement,excel-formula,match,If Statement,Excel Formula,Match,表1 | | 1 Jan 2018 | 2 Jan 2018 | 3 Jan 2018 | 4 Jan 2018 | 5 Jan 2018 | |----|------------|------------|------------|------------|------------| | A1 | | | | | | | A2 | |
| | 1 Jan 2018 | 2 Jan 2018 | 3 Jan 2018 | 4 Jan 2018 | 5 Jan 2018 |
|----|------------|------------|------------|------------|------------|
| A1 | | | | | |
| A2 | | | | | |
| A3 | | | | | |
| A4 | | | | | |
| A5 | | | | | |
| A6 | | | | | |
表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(A2,$A$27:$A$54,0) & MATCH(C1,$B$27:$S$54,0),"1","")
- 从中找出错误
- 尝试将公式应用于表1中的单元格以查找表2中的值
- 如果匹配,则输出为1,否则为0
MATCH()
返回一个数字,表示找到的匹配的位置,因此公式显示如果(1&1,“1”,“1”)
对于第一个潜在匹配,这里没有逻辑
第一种方法是强制输出真/假:=IF(AND(ISNUMBER(MATCH())、ISNUMBER(MATCH())、“1”、“1”)
您仍然存在这样一个问题,即第二个匹配引用的是整个Results范围。不过,您确实希望此操作仅查看满足第一个条件的行,为此,我们将使用数组公式来构建您要使用的数组:
编辑:无法从Match生成数组,因为它返回单个整数:
=大型(如果(B$1=IF($A2=$A$27:$A$54,$B$27:$S$54),1,0),1)
这是一个数组公式,当仍在公式栏中时,按Ctrl+Shift+Enter键
内部IF()
statemnet正在为每一行构建一个数组,在列A匹配的地方提供值,在列A不匹配的地方提供值。outterIF()
语句随后将计算0或1是否在该新数组中找到日期
我把它封装在<代码>()中,以返回第一个最大数,因此如果找到一个匹配,它将返回1。如果你想要空白,你可以把整个东西包在另一个代码> If()中:/Cord>语句;<代码>如果([公式]=0,”“1”)。感谢您的解释&我理解您的答案,我也按了Ctrl+Shift+Enter,但我与1月3日的比较结果与不匹配的日期一样空白……好吧,我会模拟您的数据并看一看,我是在我的头上写下的…@Tyler抱歉,这显然是一项仓促的工作,我没有直接思考,因为您无法使用Match来完成构建一个数组。我已经编辑了答案,现在显示了如何使用if语句来生成您想要的结果…我根据您的解释应用了它。{=if(大的)(if(D$1=if($A2=A$27:$A$54,$B$27:$S$54),1,),1)=0,“,”,1)}它有效,并且从现在起肯定为我节省了很多时间。非常感谢(: