2

实际上,我想将数字分数赋予字母等级并将它们相加。在 Excel 中,将LOOKUP函数放入数组公式中有效:

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

使用该VLOOKUP功能不起作用(仅获得一年级的分数)。Google 电子表格似乎没有该LOOKUP功能,并且VLOOKUP使用以下方法以同样的方式失败:

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

或者

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

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

4

5 回答 5

2

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

当您从其中一个计算中获取结果并将其包装在一个接受数组或范围参数的公式中时,ARRAYFORMULA 的真正威力就出现了:SUM、MAX、MIN、CONCATENATE、

由于 vlookup 需要单个单元格进行查找(在第一个参数中),我认为如果不使用单独的查找范围,您将无法使其工作。

于 2008-08-26T14:11:18.933 回答
1

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

大概那时没有,但现在确实有:

SO27774 示例

gradesSheet1!A2:A4
scoringarraySheet1!A2:B4

于 2018-07-27T23:11:16.950 回答
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 个单元格的限制。

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

于 2008-08-27T07:55:09.423 回答
0

我知道这个线程已经很老了,但我一直在为同样的问题苦苦挣扎一段时间。我终于找到了一个解决方案(好吧,弗兰肯斯蒂恩在一起)。它只是稍微优雅一点,但应该能够毫无问题地处理大型数据集。

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

=ARRAYFORMULA(SUM(INDIRECT(ADDRESS(MATCH(), MATCH())))

作为 vlookup 函数的代理。

我希望这可以帮助别人!

于 2013-02-06T21:18:20.827 回答
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

于 2019-03-16T12:31:22.803 回答