2008-08-26 113 views
2

实际上,我想给字母等级的数字分数并对它们进行求和。在Excel中,把LOOKUP功能到一个数组公式工作:在Google电子表格的数组公式中使用VLOOKUP

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

随着VLOOKUP功能,这并不工作(只得到了一年级的分数)。谷歌电子表格不会出现有LOOKUP功能和使用VLOOKUP以同样的方式失败:

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

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

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

回答

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个单元格的限制。

我一定会欢迎更优雅的解决方案!

2

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

帮助文本ARRAYFORMULA的真正力量来自当你从这些计算的一个拍摄效果,敷在一个公式,确实需要数组或范围参数内:SUM,MAX,MIN,CONCATENATE ,

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

0

我知道这个线程很旧,但我一直在努力解决这个问题一段时间。我终于遇到了一个解决方案(好吧,Frankenstiened一起)。它只是稍微优雅一些​​,但应该能够无障碍地处理大型数据集。

该解决方案使用以下:

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

作为VLOOKUP函数的替代。

我希望这可以帮助别人!

相关问题