在查询中过滤 Vlookup 结果
Filter Vlookup results inside a query
我立即尝试解决的问题是过滤 VLOOKUP 的结果。
这个公式有效:
=ArrayFormula(IFERROR(vlookup($A:$A,importrange("1XYHLG4-BhVUxXObvjEiozI6i19H5Jum97g87uFS6sYs", "DO_NOT_USE!A2:H3000"),{2,3,4,5},false)))
但我想自动过滤结果。我在这个 post 上找到了答案:
但是,当我这样做时,它似乎忽略了 VLOOKUP 部分。我的结果不再与 Col A 中的正确索引键匹配。
=query(ArrayFormula(IFERROR(vlookup(A4:A,importrange("1XYHLG4-BhVUxXObvjEiozI6i19H5Jum97g87uFS6sYs", "DO_NOT_USE!A2:H3000"),{2,3,4,5},false))), "WHERE Col2='"&B2&"'", 1)
附加上下文:我最初试图解决的问题是链接动态和静态数据。我有一个更大的 sheet,我使用查询对其进行了划分,以便每所学校(大约 60 所学校)只允许查看与其相关的数据。不幸的是,他们必须能够手动向 sheet 添加信息(此数据最终会生成到另一个 sheet 并且是必需的)。我开始解决这个问题是因为这整个过程以前总是完全在纸上完成,所有信息都是手工输入的。
我觉得我离解决方案很近了,但我不确定哪里出错了。
编辑-样本数据:
你的问题 return 结果不符合预期是 Vlookup multiple criteria
的问题,因为 query
总是将所有数据过滤到一个新的 table 而不是如果找不到,则尝试创建 row by row matching
和 return 空行:
1.To 用简单的公式解决你的问题,首先你需要在源数据中添加 Helper Column
:
=ARRAYFORMULA(B2:B13&" "&C2:C13)
2.The修改源数据:
3.Next,使用 Vlookup
进行一些修改(我在这里没有使用 importrange
因为我在同一个 table 中引用)
=ArrayFormula(IFERROR(vlookup($B:$B&" "&$G,$A:$I,{2,3,4,5},false)))
最后的结局
您也可以使用不带纯文本 ID 的 query
函数显示结果,这样它只会 return 特定的列并且学校等于单元格值时:
=QUERY(B1:I13, "select B,C,D,E,F where C = '"&G15&"'")
我立即尝试解决的问题是过滤 VLOOKUP 的结果。
这个公式有效:
=ArrayFormula(IFERROR(vlookup($A:$A,importrange("1XYHLG4-BhVUxXObvjEiozI6i19H5Jum97g87uFS6sYs", "DO_NOT_USE!A2:H3000"),{2,3,4,5},false)))
但我想自动过滤结果。我在这个 post 上找到了答案:
但是,当我这样做时,它似乎忽略了 VLOOKUP 部分。我的结果不再与 Col A 中的正确索引键匹配。
=query(ArrayFormula(IFERROR(vlookup(A4:A,importrange("1XYHLG4-BhVUxXObvjEiozI6i19H5Jum97g87uFS6sYs", "DO_NOT_USE!A2:H3000"),{2,3,4,5},false))), "WHERE Col2='"&B2&"'", 1)
附加上下文:我最初试图解决的问题是链接动态和静态数据。我有一个更大的 sheet,我使用查询对其进行了划分,以便每所学校(大约 60 所学校)只允许查看与其相关的数据。不幸的是,他们必须能够手动向 sheet 添加信息(此数据最终会生成到另一个 sheet 并且是必需的)。我开始解决这个问题是因为这整个过程以前总是完全在纸上完成,所有信息都是手工输入的。
我觉得我离解决方案很近了,但我不确定哪里出错了。
编辑-样本数据:
你的问题 return 结果不符合预期是 Vlookup multiple criteria
的问题,因为 query
总是将所有数据过滤到一个新的 table 而不是如果找不到,则尝试创建 row by row matching
和 return 空行:
1.To 用简单的公式解决你的问题,首先你需要在源数据中添加 Helper Column
:
=ARRAYFORMULA(B2:B13&" "&C2:C13)
2.The修改源数据:
3.Next,使用 Vlookup
进行一些修改(我在这里没有使用 importrange
因为我在同一个 table 中引用)
=ArrayFormula(IFERROR(vlookup($B:$B&" "&$G,$A:$I,{2,3,4,5},false)))
最后的结局
您也可以使用不带纯文本 ID 的 query
函数显示结果,这样它只会 return 特定的列并且学校等于单元格值时:
=QUERY(B1:I13, "select B,C,D,E,F where C = '"&G15&"'")