用动态 IMPORTRANGE 填充 ArrayFormula

Fill ArrayFormula with dynamic IMPORTRANGE

我有一个 Google 表格,它收集来自不同 sheet 的学生的分数来创建一个完整的分数 sheet。每位教师在 his/her 自己的 spreadsheet 中输入分数,并以论文编号作为 sheet 姓名。 any 中的每个 sheet 只有两列:Roll#Marks。使用纸张编号(sheet 名称)、Google Sheets Key、Roll#Marks 的组合,我手动创建公式以使用 Sort、ArrayFormula 和 IMPORTRANGE 函数整理数据。这行得通。

但是手动创建公式是一种容易出错的方法。另外,我想教每位老师怎么做。

我想要的是在单元格 G23 中添加公式,以便它根据其上方单元格 G2:G22 中的条目动态创建 IMPORTRANGE。如果有三个名字,它创建三个IMPORTRANGEs,如果有五个名字,它动态创建五个IMPORTRANGEs,以便这些IMPORTRANGEs通过包围ArrayFormula合并并排序。

现有公式是我手动创建的并且有效。我想要的只是拥有公式,这样如果在 G2-G22 中添加了一个新的教师姓名,就会在 ArrayFormula 中添加一个新的 IMPORTRANGE。

由于 importrange 函数具有输出数组的能力,因此不能在数组中迭代。

要合并您的公式,请使用此公式:

="=sort(ARRAYFORMULA({"&JOIN(";",ArrayFormula("IMPORTRANGE("""&VLOOKUP(FILTER(G2:G20,G2:G20<>""),Sheet3!$A:$B,2,0)&""","""&G1&"!A2:B"")"))&"}),1,True,2,True)"

然后您可以手动将结果粘贴到 G23 或 use script to paste formula