如何在VLookup importrange输出的下方返回一定数量的行(在Google电子表格中)?

时间:2017-03-20 12:52:49

标签: excel google-sheets offset

例如,如果下表位于电子表格1的sheet1中:

________A_____|__B__|__C__|
1 | Monitor   |  1  |  a  |
2 | Keyboard  |  2  |  e  |
3 | Headset   |  3  |  i  |
4 | HDD       |  4  |  o  |

电子表格2中的以下公式:

=Arrayformula(VLOOKUP("Monitor",importrange("spreadsheet1key", "sheet1!A1:C4",{2,3},FALSE)

返回“1”& “一”。

是否有办法返回下面1行的内容(电子表格1的sheet1),即“2”& “e”和“1”& “a”如下表所示?

________C_____|__D__|__E__|
1 |           |  1  |  a  |
2 |           |  2  |  e  |

如果输入和输出数据都在同一个电子表格中,则偏移功能可以通过以下方式轻松实现(thanx to @Max Makhrov)

=OFFSET(A1,MATCH("Monitor",Sheet1!A:A,0)-1,1,2,2)

但必须出于某种原因使用importrange。而偏移功能目前不适用于Google电子表格中的importrange。

首先从源电子表格中将数据从目标电子表格中的一个工作表中的importrange函数拉出,然后使用上面的公式与另一个工作表中的'offset'函数嵌套,这将是一个潜在的解决方案,但问题是到期出于一些不可避免的原因,我需要通过一个公式得到结果。

换句话说,我正在寻找一个意见,即如果偏移函数目前不适用于Google电子表格中的importrange,那么使用importrange的其他函数/解决方法可以提供上述所需结果。

Thanx很多回应!

1 个答案:

答案 0 :(得分:1)

是的所以我在评论中说你可以通过过滤器做到这一点,但你似乎必须多次重复导入

    =filter(importrange("key","sheet1!A:C"),
    importrange("key","sheet1!B:B")>=match("Keyboard",importrange("key","sheet1!A:A"),0),
    importrange("key","sheet1!B:B")<=match("Keyboard",importrange("key","sheet1!A:A"),0)+1)

这假设列B中已经有数字1-4,当然如果你尝试在最后一行使用它,它只会给出一行,因为没有更多的数据。

enter image description here

如果您不能依赖其中包含数字1-N的B列,则必须通过在公式中放置(比如)行(z1:z4)来生成它们(我认为此处需要数组公式但是没有测试过。)