ビデオ: EXCELで条件に当てはまる行の番号を配列で取得する 2024
すべての配列数式が複数の列および/または複数行の配列をワークシートに戻すわけではありません。しかし、そうすると、配列内の値が1つしか見えないことに興味があることがあります。 ExcelのINDEX関数を使用してそれを支援することができます。
たとえば、LINESTは、関数を含む数式を配列に入力した場合にのみ正しく動作するワークシート関数の1つです。しかし、おそらく、LINESTの結果で1つのセル値にアクセスするだけで、通常のレポートのワークシートレイアウトに対応したいとします。その場合、必ずしもLINEST結果の完全なセットが必要なわけではなく、ExcelのINDEX関数を使用して、表示したいものだけを抜き出して表示することができます。
<!= LINEST(A2:A51、B2:D51、、TRUE)
配列を入力するとその式を5行×4列の範囲で使用すると、その範囲の3行目と1列目の共通部分に回帰のR二乗値が含まれます。したがって、1つのセルだけを選択して次の式を入力すると、R二乗値のみが得られます。
<! (LINEST(A2:A51、B2:D51、TRUE)、3,1)
ここでは、LINEST関数によって返された値の配列をINDEXに供給しています。これがINDEXの最初の議論です。 INDEXの2番目と3番目の引数は3と1の数字で、INDEXに配列の3番目の列と1番目の列の値を検索し、ワークシートに戻します。
LINEST結果の配列を最初の引数として、CtrlキーとShiftキーとEnterキーの組み合わせを使用せずに、つまり配列を入力せずに、通常のように完全なINDEX式を入力できます。 (それを両方の方法で試してみてください。どちらの配列もそれを入力して通常通り入力してください)。
<! - 3 - >
そして、次の単一セル配列式を入力しようとすると、エラー#VALUE!
= IF(H44639:H44644> 0、G44639:G44644,0)Excelが配列を引数として受け取る関数を式が呼び出すと、数式は次のようになります。正常に入力されました。
= INDEX(LINEST(A2:A51、B2:D51、TRUE)、3,1)
LINESTの結果はINDEX関数内でネストされ、最初の引数。 Excelは、INDEXが最初の引数として値の配列を取ることを期待しています。つまり、配列の解析はINDEXが生まれたものです。したがって、与えられた式は配列に入力する必要はありません。
= AVERAGE(IF(A2:A25 = "Zig"、B2:B25、 ""))
この場合、Excelは配列を入力する必要がありますIF関数が値の配列を引数として取ることは期待していませんが、ここでは1つではなく2つの値の配列、つまりA23:A25とB2:B25をIFに提示しています。(最初の2つの引数が意味する24個のインスタンスの配列があるという立場を取ることもできます)。式がIFに対する引数のExcelの最初の期待を満たしていないため、Excelの状況に注意を払わなければなりません。数式を配列で入力することでそうすることができます。