Sheet1具有A到D列,其中A包含唯一的记录键。
在Sheet2上,我想按照自己的排序顺序重新排列数据。列A包含我自己的自定义排序记录键。
我到目前为止在Sheet2上所做的是:我正在计算B列中的记录位置为
=ARRAYFORMULA(MATCH(A1:A100,Sheet!A:A,0))
而且我一直在尝试使用ARRAYFORMULA INDIRECT一次性获取数据。
我可以使用正确地获得一行
=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1&":D"&B1)))
我想要的是类似下面的内容,但它仍然仅返回第一行。
=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1:B100&":D"&B1:B100)))
救命。
最佳答案
不幸的是,INDIRECT不支持在数组上进行迭代。
幸运的是,VLOOKUP可以,并且这意味着您不需要帮助程序列。所以:=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4}*SIGN(ROW(A1:A100)),0))
在new version of Sheets中,可以简化第三个参数:=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4},0))
关于google-sheets - 使用ARRAYFORMULA和INDIRECT迭代行并作为块返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20625539/