INDEX関数を使用してExcelで使用して配列を返します
何らかの理由で、特定のインデックスを持つ範囲で何らかの操作を実行する場合は、特定のインデックスの値の配列を取得するためにINDEX関数を使用することを検討します。このような。
例を挙げて理解しましょう。
ここに、レート列があります。位置1、3、および5の値を合計したい。
私はこの式をC2で書きます。
=SUM(INDEX(A2:A11,{1,3,5}))
驚いたことに、配列をインデックスとして指定すると、INDEX関数は値の配列を返しません。最初の値のみを取得します。また、SUM関数は1つの値の合計のみを返します。
では、INDEX関数がその配列を返すようにするにはどうすればよいでしょうか。このソリューションをインターネットで見つけました。どのように機能するのかよくわかりませんが、機能します。
インデックスの配列を取得するための一般式
=SUM(INDEX(range,N(IF(1,{numbers})))
範囲:指定されたインデックス番号で検索する範囲です。番号:これらはインデックス番号です。
次に、上記の式を例に適用してみましょう。
この式をC2で記述します。
=SUM(INDEX(A2:A11,N(IF(1,{1,3,5})))
そして、これは正解を90として返します。
仕組み。
さて、私が言ったように、なぜそれが機能して数値の配列を返すのかわかりませんが、ここでは何が起こりますか。
link:/ Tips-if-condition-in-excel [IF]
(1、\ {1,3,5}):
この部分は、期待どおりに配列\ {1,3、5}を返しますN( link:/ Tips-if-condition-in-excel [IF]
(1、\ {1,3,5}))
これはN(\ {1,3,5})に変換され、\ {1,3,5}が得られます。注:N関数は、任意の値に相当する数値を返します。値が数値変換可能でない場合は、0を返します(テキストのように)。エラーの場合はエラーを返します。
link:/ lookup-formulas-excel-index-function [INDEX]
((A2:A11、N( link:/ Tips-if-condition-in-excel [IF]
(1、\ {1,3 、5}))):
この部分は link:/ lookup-formulas-excel-index-function [INDEX]
((A2:A11、\ {1,3,5})
そしてどういうわけかこれは配列\ {10,30,50}を返します。前に link:/ lookup-formulas-excel-index-function [INDEX]
((A2:A11、\ { 1,3,5})
式で直接10を返すだけですが、N関数とIF関数を使用すると、配列全体が返されます。理解している場合は、以下のコメントセクションでお知らせください。
インデックス値のセル参照を使用して配列を取得する方法
上記の例では、関数内でインデックスをハードコーディングしました。しかし、変更される可能性のある範囲。\ {1,3,5}を範囲に置き換えますか?試してみましょう。
セルD2に次の数式があります。
=SUM(INDEX(A2:A11,N(IF(1,A2:A5)))
これは10を返します。与えられたインデックスの最初の値。 CTRL + SHIFT + ENTERを使用して配列数式として入力すると、同じ結果が得られます。
これを機能させるには、範囲の前に+または-(二重単項)演算子を追加し、配列数式として入力します。
{=SUM(INDEX(A2:A11,N(IF(1,+A2:A5)))}
これは機能します。どうやって私に聞かないの?それはうまくいきます。あなたの名前と説明をここに含める方法を教えていただければ。
そこで、INDEX関数から配列を取得する方法を学びました。ここでは、いくつかのクレイジーなことがExcelで行われています。以下のコメントセクションでそれがどのように機能するかを説明できるなら、私はあなたの名前でそれを私の説明に含めます。