Google sheets 在Google电子表格的数组公式中使用VLOOKUP

Google sheets 在Google电子表格的数组公式中使用VLOOKUP,google-sheets,gs-vlookup,Google Sheets,Gs Vlookup,实际上,我想给字母级的分数加上数字,然后求和。在Excel中,将LOOKUP函数放入数组公式中可以: {=SUM(LOOKUP(grades, scoringarray))} 使用VLOOKUP功能,这不起作用(只获取一年级的分数)。谷歌电子表格似乎没有LOOKUP功能,而VLOOKUP的失败方式与使用以下功能相同: =SUM(ARRAYFORMULA(VLOOKUP(grades, scoresarray, 2, 0))) 或 是否可以这样做(但我的语法错误)?您能推荐一种方法,允许在这样

实际上,我想给字母级的分数加上数字,然后求和。在Excel中,将
LOOKUP
函数放入数组公式中可以:

{=SUM(LOOKUP(grades, scoringarray))}
使用
VLOOKUP
功能,这不起作用(只获取一年级的分数)。谷歌电子表格似乎没有
LOOKUP
功能,而
VLOOKUP
的失败方式与使用以下功能相同:

=SUM(ARRAYFORMULA(VLOOKUP(grades, scoresarray, 2, 0)))


是否可以这样做(但我的语法错误)?您能推荐一种方法,允许在这样一个简单的单元格中进行计算,而不是将查找结果隐藏在其他地方,然后进行求和吗?

恐怕我认为答案是否定的。从帮助文本开始

ARRAYFORMULA的真正威力来自于从其中一个计算中获取结果并将其封装在一个公式中,该公式采用数组或范围参数:SUM、MAX、MIN、CONCATENATE、


由于vlookup只使用一个单元格进行查找(在第一个参数中),我认为如果不使用单独的查找范围,就无法让它正常工作。

我仍然看不到示例中的公式(只是值),但这正是我试图在结果方面所做的;显然,我已经可以“边做边做”了,并且可以分别求和——对我来说,关键是在一个单元格中完成

今天早上我又看了一遍,使用
MATCH
函数查找在数组公式中起作用。但是
索引
函数不起作用。我还尝试将它与
偏移量
间接
一起使用,但没有成功。最后,
CHOOSE
函数似乎不接受单元格范围作为其可供选择的列表-该范围降级为单个值(范围中的第一个单元格)。还应注意的是,
CHOOSE
功能只接受30个可供选择的值(根据文档)。都很烦人。但是,我现在在一个单元格中有了一个可行的解决方案:使用
CHOOSE
函数,并在参数中逐个显式列出结果单元格,如下所示:

=ARRAYFORMULA(SUM(CHOOSE(MATCH(D1:D8,Lookups!$A$1:$A$3,0),
                                     Lookups!$B$1,Lookups!$B$2,Lookups!$B$3)))
显然,这并没有很好地扩展,但希望查找表本质上是固定的。对于较大的查找表,单独键入所有单元格是一件痛苦的事情,有些人可能会超过30个单元格的限制


我当然欢迎更优雅的解决方案

我知道这个线程已经很老了,但我已经为这个问题挣扎了一段时间。我终于找到了一个解决办法(好吧,弗兰肯斯坦一起)。它只是稍微优雅一点,但应该能够轻松地处理大型数据集

该解决方案使用以下内容:

=ARRAYFORMULA(SUM(INDIRECT(ADDRESS(MATCH(), MATCH())))
作为vlookup函数的代理

我希望这对别人有帮助

谷歌电子表格似乎没有查找功能

当时可能没有,但现在确实有:

等级
表1!A2:A4

scoringarray
Sheet1!A2:B4

您可以通过在VR表中硬编码来轻松完成此操作:

=SUM(IFERROR(ARRAYFORMULA(VLOOKUP(A2:A, {{"A", 6};
                                         {"B", 5};
                                         {"C", 4};
                                         {"D", 3};
                                         {"E", 2};
                                         {"F", 1}}, 2, 0)), ))

或者,您可以使用一些带有规则的边单元格:

=SUM(IFERROR(ARRAYFORMULA(VLOOKUP(A2:A, E2:F, 2, 0)), ))


备选方案:

=SUM(IFERROR(ARRAYFORMULA(VLOOKUP(A2:A, E2:F, 2, 0)), ))