2017-08-21 144 views
0

我想获得一些代码工作,但是当我将目标单元格更改为单元格范围时,我收到错误#VALUE!如果值匹配返回true

此代码的工作

=IF(AND(A1=Sheet2!A2,B1=Sheet2!B2),"TRUE","FALSE") 

,但如果我添加了一个范围,我得到#VALUE!错误

=IF(AND(A1=Sheet2!A2:A10,B1=Sheet2!B2:B10),"TRUE","FALSE") 

更新:这里是什么,我想实现

Example

任何帮助的例子将不胜感激 非常感谢, 而

+0

单元格如何具有与范围相同的内容?该范围内存储了什么?如果你想要的话,例如SUM使用那个函数作为范围。 – Doomenik

+0

A1是单元格值,但是Sheet2!A2:A10是一个范围。所以他们不可能是平等的。 – macroland

+0

谢谢,所以A1 = NOW()(今天的日期)所以A2到A10将有A2 = 19-8-17,A3 = 20-8-17等,B1将在C1中有“ONCALL”,如果今天是日期在单元格A5和B5中包含“ONCALL”单元格C1将显示ONCALL – Andy

回答

1

与您的逻辑陈述不同的方法。相反,它会查看您的表格,并将名称与行和列与所选日期进行匹配,然后在该位置处拉取该值。

=INDEX($B$7:$G$8,MATCH($B3,$A$7:$A$8,0),MATCH(C$1,$B$6:$G$6,0)) 

POC

重要提示:在您B3的名字:B4区必须是唯一的,拼写相同的A7:A8区域。其中包括可能意外掉入的尾部或前导空间。

如果表格位于工作簿的不同页面上,请调整参考范围以符合您的需要。

+0

完美,谢谢测试迄今似乎按照要求工作 – Andy

0

enter image description here

这是一个阵列式 - 击中按Ctrl + + 输入尽管仍然在公式编辑栏中

=INDEX(B2:B10,SMALL(IF(A2:A10=A1,IF(B2:B10="ONCALL",ROW(A2:A10)-1)),1))

=INDEX(B2:B10, - 通过看B2:

SMALL(IF(A2:A10=A1, 
     IF(B2:B10="ONCALL", 
         ROW(A2:A10)-1)),1)) 

这就是:B10和返回的行数由calulcaulated在两个IF语句都为真的情况下(数据匹配和“ONCALL”存在)构建一个行数减1的数组,然后SMALL按升序返回第n个值 - 我要求第一个m atch(或最小的行号),然后INDEX用来返回结果。

+0

谢谢,这似乎并没有为我想要的工作,我已经添加了希望更清晰的例子,我试图实现以上,非常感谢 – Andy

+0

@安迪道歉。我现在很忙,这些日子我只有5分钟的窗户来检查。很高兴有人跟着答案。我只有最初的信息工作,否则我会建议在FormulaEd的答案 –

+0

提供的确切公式提供的答案谢谢@Glitch_Doctor我的第一篇文章可能已经完成了一点点更详细的回顾现在 – Andy