使用ARRAYFORMULA和INDIRECT迭代行并作为块返回

Riy*_*oor 9 google-sheets gs-vlookup

Sheet1具有列A到D,其中A包含唯一的记录键.

在Sheet2上我想根据我自己的排序顺序重新排列数据.Colum A包含我自己的自定义排序记录键.

我现在在Sheet2上所做的是; 我正在计算B栏中的记录位置

=ARRAYFORMULA(MATCH(A1:A100,Sheet!A:A,0))
Run Code Online (Sandbox Code Playgroud)

我一直试图使用ARRAYFORMULA INDIRECT一次性获取数据.我可以正确使用单行

=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1&":D"&B1)))
Run Code Online (Sandbox Code Playgroud)

我想要的是下面的内容,但它仍然只返回第一行.

=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1:B100&":D"&B1:B100)))
Run Code Online (Sandbox Code Playgroud)

救命.

Ada*_*amL 13

不幸的是,INDIRECT不支持对数组进行迭代.

幸运的是,VLOOKUP可以,也意味着您不需要帮助列.所以:

=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4}*SIGN(ROW(A1:A100)),0))

新版本的Sheets中,第三个参数可以简化:

=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4},0))

  • 为什么文档中没有这些有用的信息? (2认同)