在我的代码中,我想检查目标单元格(A11)是否在3个不同的电子表格中匹配,并从单元格返回适当的值。因此,在手动方式中,我复制单元格A11并访问每个数据表选项卡以查看单元格数据是否存在。我在这里要做的是如果参考单元格为空,如何显示“NOTHING”。只需一行搜索就像黄金一样好:
=IF(
VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,11,FALSE)="",
,"",
IF(
ISNA(VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,1,FALSE))=TRUE,"","R41: " & VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,11,FALSE))&"
"&IF(ISNA(VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,1,FALSE))=TRUE,"","R42: " & VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,11,FALSE))&"
"&IF(ISNA(VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,1,FALSE))=TRUE,"","R43: " & VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,11,FALSE)))
但是我想不只搜索一个,而是所有3个电子表格都添加了OR功能并弄得一团糟......(这就是我能想到的)我已经和很多小时打过仗了但还是想不通。这是我的搞乱代码!
=IF(OR(
VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,11,FALSE)="",
VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,11,FALSE)="",
VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,11,FALSE)=""),"",
IF(
ISNA(VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,1,FALSE))=TRUE,"","R41: " & VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,11,FALSE))&"
"&IF(ISNA(VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,1,FALSE))=TRUE,"","R42: " & VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,11,FALSE))&"
"&IF(ISNA(VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,1,FALSE))=TRUE,"","R43: " & VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,11,FALSE)))
你能看看并指出我需要修改代码的地方吗?感谢:)
答案 0 :(得分:0)
如果找到匹配但是返回值的单元格为空,则通常会返回零,即空白单元格的值。如果您希望返回文本,则可以通过在返回值后附加零长度字符串来返回零长度字符串(例如""
,TEXT(,)
或 nothing )。
vlookup($A11,'[DataSheet]SOC 41'!$C$2:$P$5000, 11 ,FALSE)&""
如果要返回的单元格为空,则返回零长度字符串,如果要返回的单元格包含文本,则不会影响结果。它确实然而更改单元格以将数字值返回到文本 - 看起来像一个数字,所以要小心。还有其他方法可以处理不包括将其转换为文本的数字。
由于您将R41,R42和R43连接到VLOOKUP的返回值,所有您应该要求的是更好的错误控制。您的整个公式将受益于它似乎的IFERROR功能。
=IFERROR("R41: "&VLOOKUP($A11,'[DataSheet]SOC 41'!$C$2:$P$5000,11,FALSE), "")&
IFERROR("R42: "&VLOOKUP($A11,'[DataSheet]SOC 42'!$C$2:$P$5000,11,FALSE), "")&
IFERROR("R43: "&VLOOKUP($A11,'[DataSheet]SOC 43'!$C$2:$P$5000,11,FALSE), "")
现在这可能会留下 R41:,但没有任何内容,但没有样本数据和预期结果,这是我从你的叙述中可以推测的最好的。