1

ここに画像の説明を入力

図では、すべての数式は配列です。各数式がまたがる範囲は縁取りされ、各ブロックの最初の数式はそのブロックの上部に書き込まれます。

範囲A4:A103は入力ベクトル (数値) であり、範囲は (入力ベクトルの長さ以下のゼロ以外の正の整数である必要C4:G23がある) 行の特定の (入力) 順列です。A4:A103

順列行列を行の集合として解釈してみましょう。

一定数のセルの各行について、入力ベクトルの最小数を計算する方法は? 一定数のセルとは、順列の列数に関係なく、各行に一定数のセルを必要とするソリューションを意味します。(プロダクションの場合、各次元ははるかに大きく、順列行列には約 100 列あります。)

VBA ソリューションは求めません。必要に応じて、ソリューションで MoreFunc などの無料で公開されている Excel アドオンを使用できますが、私はそれを通常の Excel 2007 以降のままにしておくことをお勧めします。


{=MIN(INDEX(INDIRECT($A$2);$C4:$G4))}その式が私の問題を解決してくれると思いました。驚いたことに、Excel は数式の配列の性質を考慮していないようで、それが=MIN(INDEX(INDIRECT($A$2);$C4)機能不全と同等であるかのように記述されているかのように評価し=INDEX(INDIRECT($A$2);$C4)ます。

一方、 への引数MINは範囲 I4:M4 の配列として理解されることがわかります。

4

1 に答える 1

3

INDEXいくつかの奇妙な方法で動作します!

通常INDEX、配列を返すことはできません-それに対する1つの例外を見つけたようですが-範囲に入力された配列数式の場合。

OFFSET内で機能する必要な配列を返すために使用できるはずですMIN。つまり、この式で

=MIN(N(OFFSET(INDIRECT($A$2);$C4:$G4-1;0)))

CTRL+ SHIFT+で確認ENTER

于 2013-11-06T20:20:00.637 に答える