2

事実上、アルファベットの成績に数値のスコアを付けて合計したいと考えています。Excel では、LOOKUP関数を配列数式に入れると機能します。

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

関数では、これはVLOOKUP機能しません (1 年生のスコアのみを取得します)。Google スプレッドシートにはこのLOOKUP機能がないようVLOOKUPで、次を使用して同じように失敗します。

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

また

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

これを行うことは可能ですか (ただし、構文が間違っています)? ルックアップを別の場所に隠して後で合計するのではなく、このような 1 つの単純なセルで計算できるようにする方法を提案できますか?

4

5 に答える 5

2

答えはノーだと思います。http://docs.google.com/support/spreadsheets/bin/answer.py?answer=71291&query=arrayformula&topic3%type=のヘルプテキストから

ARRAYFORMULAの真の力は、これらの計算の1つから結果を取得し、それを配列または範囲の引数(SUM、MAX、MIN、CONCATENATE、

vlookupは(最初の引数で)ルックアップに単一のセルを使用するため、別の範囲のルックアップを使用しないと、vlookupを機能させることはできないと思います。

于 2008-08-26T14:11:18.933 に答える
1

Google スプレッドシートには LOOKUP 関数がないようです

おそらく当時はそうではありませんでしたが、現在は次のようになっています。

SO27774 の例

gradesSheet1!A2:A4
scoringarraySheet1!A2:B4

于 2018-07-27T23:11:16.950 に答える
0

このスレッドがかなり古いことは知っていますが、しばらくの間、同じ問題に苦しんでいました。私はついに解決策に出くわしました(まあ、一緒にフランケンシュタイン化されたものです)。少しだけエレガントですが、大規模なデータ セットを問題なく処理できるはずです。

このソリューションでは、次のものを使用します。

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

vlookup 関数の代理として。

これが誰かに役立つことを願っています!

于 2013-02-06T21:18:20.827 に答える
0

私はまだあなたの例の数式を見ることができません (値のみ) が、それは結果に関してまさに私がやろうとしていることです; 明らかに、私はすでにそれを「横に」して別々に合計することができます-私にとっての鍵は、1つのセルでそれを行うことです。

私は今朝もう一度それを見ました -MATCHルックアップのための関数を使用すると、配列数式で機能します。しかし、INDEX関数はそうではありません。OFFSETまた、INDIRECT成功の有無にかかわらず、それを使用してみました。最後に、CHOOSE関数は選択するリストとしてセル範囲を受け入れないようです - 範囲は単一の値 (範囲内の最初のセル) に低下します。CHOOSEまた、この関数は 30 個の値しか選択できないことにも注意してください(ドキュメントによると)。すべて非常に迷惑です。しかし、私は今、1 つのセルに実用的な解決策を持っています:CHOOSE関数を使用し、次のように引数に結果セルを 1 つずつ明示的にリストします。

=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

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 に答える