2008-08-26 209 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函數的替代。

我希望這可以幫助別人!

相關問題