在Google Spreadsheets上的数组公式中使用VLOOKUP

时间:2008-08-26 11:21:53

标签: google-sheets gs-vlookup

实际上,我想给字母成绩提供数字分数并加以总结。在Excel中,将LOOKUP函数放入数组公式中:

{=SUM(LOOKUP(grades, scoringarray))}

使用VLOOKUP功能时,这不起作用(仅获得一年级的分数)。 Google Spreadsheets似乎没有LOOKUP功能,VLOOKUP使用相同的方式失败:

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

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

是否可以这样做(但我的语法有误)?你能否建议一种方法,允许在一个简单的单元格中进行计算,而不是将查找隐藏在其他地方并在之后对它们求和?

4 个答案:

答案 0 :(得分:2)

我担心我认为答案是否定的。从帮助文本上 http://docs.google.com/support/spreadsheets/bin/answer.py?answer=71291&query=arrayformula&topic=&type=

  

当您从其中一个计算中获取结果并将其包含在一个确实采用数组或范围参数的公式中时,ARRAYFORMULA的真正威力来自:SUM,MAX,MIN,CONCATENATE,

由于vlookup需要单个单元格进行查找(在第一个参数中),我认为不使用单独的查找范围就可以使它工作。

答案 1 :(得分:1)

  

Google电子表格似乎没有LOOKUP功能

大概不是现在,但是现在有了:

SO27774 example

grades Sheet1!A2:A4
scoringarray Sheet1!A2:B4

答案 2 :(得分:0)

我仍然看不到你的例子中的公式(只是值),但这正是我在结果方面要做的事情;显然我已经可以“在旁边”并且单独总结 - 我的关键是在一个单元格中进行。

我今天早上再次查看它 - 使用MATCH函数进行数组公式中的查找工作。但是INDEX函数没有。我也尝试将其与OFFSETINDIRECT一起使用,但没有成功。最后,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个单元格的限制。

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

答案 3 :(得分:0)

您可以通过在VR表中对其进行硬编码来轻松地做到这一点:

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

0

或者您可以在规则中使用一些边格:

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

6


替代方案:https://webapps.stackexchange.com/a/123741/186471