![存在间接问题的 If 语句](https://linux22.com/image/1493653/%E5%AD%98%E5%9C%A8%E9%97%B4%E6%8E%A5%E9%97%AE%E9%A2%98%E7%9A%84%20If%20%E8%AF%AD%E5%8F%A5.png)
我的工作表将 I1 设置为其他选项卡的下拉框。A1 和 B1 公式有效,并从选项卡中的单元格中提取信息(如果有信息),单元格的公式略有变化,但您可以从中得到一些启发。
=IF(INDIRECT("'"&I1&"'!"&"A1"),INDIRECT("'"&I1&"'!"&"A1"),"")
我的 C1 给我带来了问题。
=IF(INDIRECT("'"&I1&"'!"&"C2"),"Yes","No")
如果引用的 C 单元格中没有信息,则它会显示“否”。如果那里有任何文本,我会收到错误#Value!
。两个单元格都设置为常规。我已经为此奋斗了大约一个小时,但我还是被卡住了。我该如何解决这个问题?
答案1
在 IF 中,您不会将单元格与任何东西进行比较。IF 的第一个参数应为逻辑项(真或假),然后 IF 会相应地采用第二个或第三个参数。
INDIRECT("'"&I1&"'!"&"C2")
将产生该单元格的内容,但你没有告诉它IF
如何处理它。因此它会尝试转变该单元格的内容为true
或false
- 如果单元格为空,则变为false
,如果单元格包含文本,则无法转换并给出#VALUE!
。
如果您不关心文本本身而只想检查它是否存在,请与空字符串进行比较:
=IF(INDIRECT("'"&I1&"'!"&"C2")<>"","Yes","No")
否则,与您想要比较的任何内容进行比较。