使用动态ImportRange填充ArrayFormula

时间:2016-03-24 10:34:42

标签: google-sheets formulas

我有一个Google电子表格,可以从各种工作表中收集学生的标记,以创建完整的标记表。

每位教师在他/她自己的电子表格中输入标记,纸质编号作为工作表名称。任何一张都只有两列。滚动#&分数。使用纸张编号(工作表名称),Google Sheet Key,Roll#& amp; Marks I MANUALLY创建公式以使用Sort,ArrayFormula&amp ;;来整理数据。 ImportRange函数。这有效。 但是手动创建公式是一种容易出错的方法。另外,我想教每位老师如何做到这一点。

这是主表。 https://docs.google.com/spreadsheets/d/1IYOxZOZEnaQP8p69IsN5wDOtJhQBml1qARjj4yqA4Ds/edit?usp=sharing

我想要的是在单元格G23中添加公式,以便根据它上面的单元格G2:G22中的条目动态创建ImportRange。如果有3个名称,则创建3个ImportRanges,如果有5个名称,则动态创建5个ImportRanges,以便通过包络ArrayFormula&组合这些ImportRanges。反过来排序。

现有公式是我手动创建的公式。有用。我想要的是使用公式,以便在G2-G22中添加新的教师名称时,会在ArrayFormula中添加新的ImportRange。

1 个答案:

答案 0 :(得分:1)

由于importrange函数具有输出数组的能力,因此无法跨数组进行迭代。

要合并公式,请使用以下公式:

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

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