Excel: 変数範囲から最大値を取得する

Excel: 変数範囲から最大値を取得する

ここに画像の説明を入力してください

行ヘッダーが特定の値に等しい可変数の行と列から最大値を取得する必要があります。上記の例では、300 は最大値 15 を返します。

行ヘッダー (例: 300) が変数となり、行ヘッダー 300 や 600 などの最大値が返されるような数式を作成しようとしています。

ヘッダーが 300 であるすべての行の範囲または配列を取得して、その範囲で Max 関数を使用するにはどうすればよいですか?

答え1

あなたの300F1、その後D1配列数式を入力します:

=MAX(IF(A1:A100=F1,B1:C100))

配列数式キーだけではなく、Ctrl+ Shift+を使用して入力する必要があります。正しく入力すると、数式バーに中括弧で囲まれた数式が表示されます。EnterEnter

ここに画像の説明を入力してください

コラムのおかげで基準は、101列に並んで14無視されます。

答え2

Office 365 Excel をお持ちの場合、通常の数式は次のようになります。

=MAX(MAXIFS(B:B,A:A,300),MAXIFS(C:C,A:A,300))

両方の 300 をセル アドレスに置き換えることができます。これは配列数式ではないため、問題なく列全体の参照が可能になります。

答え3

もう少し一般的な答えは次のとおりです。

行 6 から N まで伸びる配列の行 i から j の連続するサブセットについて、列 C と D に表示される数値の最大値 (または最小値、中央値など) を計算し、列 B に「行」の値を入力するとします。i の明示的な値は B2 で指定し、j の値は B3 で指定します (これらの値は、スプレッドシートの他の場所で事前に計算されている可能性があります)。ここでは、透明性を確保するために、i = 9、j = 14、n = 15 とします。

以下は私が開発した Excel2003 コードです。問題なく動作するようです。

{=MAX(IF(B6:B15>=B2,IF(B6:B15<=B3,C6:C15),""))} は MAX(C9:C14) を返します。

{=MAX(IF(B6:B15>=B2,IF(B6:B15<=B3,D6:D15),""))} は、 MAX(D9:D14) を返します。

同様の計算を行うには、MAX を MIN または他の関数名に変更するだけです。ただし、ステートメントを操作するたびに消える「中括弧」を再インストールすることを忘れないでください (Ctrl-Shift-Enter)。

関連情報