Google sheets 使用ARRAYFORMULA和INDIRECT迭代行并作为块返回
Sheet1有A到D列,其中A包含唯一的记录键 在表2中,我想根据自己的排序顺序重新排列数据。ColumA包含我自己定制的记录键 到目前为止,我在第二张纸上所做的是;我把B列中的记录位置计算为Google sheets 使用ARRAYFORMULA和INDIRECT迭代行并作为块返回,google-sheets,gs-vlookup,Google Sheets,Gs Vlookup,Sheet1有A到D列,其中A包含唯一的记录键 在表2中,我想根据自己的排序顺序重新排列数据。ColumA包含我自己定制的记录键 到目前为止,我在第二张纸上所做的是;我把B列中的记录位置计算为 =ARRAYFORMULA(MATCH(A1:A100,Sheet!A:A,0)) 我一直在尝试使用ARRAYFORMULA间接法一次性获取数据。 我可以使用 =ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1&":D"&B1))) 我想要的是下面的内容
=ARRAYFORMULA(MATCH(A1:A100,Sheet!A:A,0))
我一直在尝试使用ARRAYFORMULA间接法一次性获取数据。
我可以使用
=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1&":D"&B1)))
我想要的是下面的内容,但它仍然只返回第一行
=ARRAYFORMULA(INDIRECT(("Sheet1!B"&B1:B100&":D"&B1:B100)))
帮助。不幸的是,INDIRECT不支持对数组进行迭代 幸运的是,VLOOKUP确实如此,这也意味着您不需要helper列。因此:
=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4}*符号(行(A1:A100)),0))
在本文中,第三个论点可以简化:
=ArrayFormula(VLOOKUP(A1:A100,Sheet1!A:D,{2,3,4},0))
非常有效,谢谢亚当。想想看,这也可以作为“穷人”的表联接来使用,对吗?为什么文档中没有这些有用的信息?当然,它可以用作表联接,但通常会影响性能(每次编辑都会重新计算公式),因此,只有当公式完成它的工作时,你才能考虑改变价值。至于文档,它随着新版本的Sheets得到了改进,但是我们仍然需要“发现”很多类似的东西。创建实验示例