我在If
的Google表格中遇到了Vlookup
语句。
当前公式:
=IfError(ARRAYFORMULA(if(len($A3:$A),VLOOKUP($A3:$A,
{'Form responses 3'!$E2:$E,'Form responses 3'!$G2:$G},2,0),)))
因此,上述操作是在另一张纸上的A3:A
中查找一个值,如果E:E
中存在匹配项,请在第二列或G:G
中返回该值
上述公式的问题是,在A3:A
中只能有一个唯一值(例如1-36),但是G2:G
却有一个相同的多次迭代的问题Vlookup
仅采用匹配的第一个值的数字。
因此,我试图通过在要求给我一个值之前先检查另一个唯一性来扩展上述公式。因此,下面的公式:
=IfError(ARRAYFORMULA(If('Form responses 3'!D:D=3,,
if(len($A3:$A),VLOOKUP($A3:$A,{'Form responses 3'!$E2:$E,'
Form responses 3'!$G2:$G},2,0),))))
因此,现在要尝试做的是首先检查if D:D =3
,然后仅在VLookup
上进行上述IF D:D is 3
的操作(在此示例中)。
我显然没有正确地执行If lookup for =3
,因为当我将第二个公式输入到单元格中时,我仍然得到第一个值匹配,并且没有考虑先查找3。
如果任何人想要在整个上下文中查看该公式,我将很乐意与您分享这张表。
答案 0 :(得分:0)
公式的主要问题:
=IfError(ARRAYFORMULA(If('Form responses 3'!D:D=3,,
if(len($A3:$A),VLOOKUP($A3:$A,{'Form responses 3'!$E2:$E,'
Form responses 3'!$G2:$G},2,0),))))
是VLOOKUP()
只能有一个搜索条件。您正在尝试通过在VLOOKUP()
之前加上IF()
语句来模拟多个条件。在某些情况下,您也许可以取得结果,但最终会得出难以理解且难以调试的公式。
请使用QUERY()
函数,在该函数中可以有多个条件。 QUERY()
更加灵活,允许多个搜索条件。
其语法为QUERY(range, select statement, [headers])
这是一个示例,在示例表中给出了正确的值87。
=query('Form responses 3'!$A$2:$G$6,"select G where D="&B$1&" and E = "&A3&"",0)
说明:
Form responses 3'!$A$2:$G$6
---要选择的范围
"select G
---从范围内匹配的行中选择G列
where D="&B$1&
“-匹配范围D到单元格B1的条件
and
---逻辑and
,以遵循其他准则
`E =“&A3&”“ ---将范围中的列E匹配到单元格A3的条件
我强烈建议您学习QUERY
和各种select
语句的所有可能性。
我在此处的链接表中添加了另外一个sheet8
,以显示实际的查询。上面的公式位于单元格E3
中,并按预期提供值87
。
https://docs.google.com/spreadsheets/d/1xo8edBZQ5bJXUqqGxqPMZeyrdAQgIFZzkgv7Dct1g0A/edit?usp=sharing
注意::如果您对QUERY不熟悉,建议您先做一个教程并学习其语法。上面的示例开始时有点先进(即从一张纸中进行选择,基于另一张纸中的单元格值)。