プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000です。ワークシート関数についての質問です。
セル範囲B1:B5の最大値は、=MAX(B1:B5) で求められますが、これに条件を付加してセル範囲A1:A5が1より大きいもののなかからセル範囲B1:B5の最大値を求めるならどのような数式になるでしょうか?
作業列を設けて、範囲A1:A5が1でないもののみ抽出し、そこからMAXで求めるという方法ならばすぐ思いつくのですが、作業列を使わない方法があればご教示ください。

A 回答 (2件)

=SUNMPRODUCT(MAX((A1:A5>1)*(B1:B5)))


または
=MAX(IF(A1:A5>1,B1:B5,0))
でCtrl+Shift+Enterで配列数式にする。
    • good
    • 0
この回答へのお礼

ありがとうございます。
SUMPRODUCTでいけたんですね!
助かりました。

お礼日時:2008/08/22 11:13

こんにちは。



通常なら、以下でよいはずです。

=SUMPRODUCT(MAX(B1:B5*(A1:A5>1)))
または、
=MAX(INDEX(B1:B5*(A1:A5>1),,))

ただ、OSとの関係もあるとは思いますが、Excel2000 には、配列式のデータ数に事実上の上限があるかもしれません。

その場合は、
フィールド行(1行目のタイトル)を設けて、

E2 に、=AND(A2>1,B2) [E1 は空白]

DMAX という、データベース関数を使い

=DMAX(A1:B6,B1,E1:E2)

こうすれば、Excel2000でも、上限に関係なく出せます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
SUMPRODUCTを失念していました。
助かりました。

お礼日時:2008/08/22 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!