(祝)東京オリンピック!

(祝)北京オリンピック!

シート関数を使う

指定する条件の中から最大値を抽出する(MAX)



  

COPY

最大値を抽出するだけならMAXで可能ですが、
指定する条件の中だけで最大値を抽出したいという場合は、配列数式を使います。

以下のように
A、B列に複数のデータがあります。
A列の「A」という条件の中だけで、B列から最大値を抽出します。

数式は以下のように入力します。

=MAX(IF(A1:A20="A",B1:B20))

配列数式の確定は「Ctrl +Shift+ Enter」とキーを押下します。
式の前後にカッコ{}が付き、以下のように確定されます。

{=MAX(IF(A1:A20="A",B1:B20))}

最大値の「100」という値が返ります。

変更した場合、再度「Ctrl +Shift+ Enter」とキーを押下して確定する必要があります。

指定する複数の条件の中から最大値を抽出する(MAX)



  

COPY

A、B、C列に複数のデータがあります。
A列が「A」、B列が「あ」という条件で、C列から最大値を抽出します。

=MAX(IF((A1:A20="A")*(B1:B20="あ"),C1:C20))

配列数式の確定は「Ctrl +Shift+ Enter」とキーを押下します。
式の前後にカッコ{}が付き、以下のように確定されます。

{=MAX(IF((A1:A20="A")*(B1:B20="あ"),C1:C20))}

最大値の「50」という値が返ります。

変更した場合、再度「Ctrl +Shift+ Enter」とキーを押下して確定する必要があります。

指定する条件の中から最小値を抽出する(MIN)



  

COPY

=MIN(IF(A1:A20="A",B1:B20)
と思いつきますが、A列に「A」がないとき、0が返ります。「A」というデータがあってその最小値が0なのか区別がつきません。

なので最小値を抽出するには、ちょっと工夫が必要です。
私はMATCH関数を使って「A」という値があるのか検査して、存在すれば配列数式を使うとしています。

=IF(ISERROR(MATCH("A",A1:A20,0)),"",MIN(IF(A1:A20="A",B1:B20)))

配列数式の確定は「Ctrl +Shift+ Enter」とキーを押下します。
式の前後にカッコ{}が付き、以下のように確定されます。

{=IF(ISERROR(MATCH("A",A1:A20,0)),"",MIN(IF(A1:A20="A",B1:B20)))}

最小値の「5」という値が返ります。

{=IF(ISERROR(MATCH("AA",A1:A20,0)),"",MIN(IF(A1:A20="AA",B1:B20)))}
「A」を「AA」とすると最大値の「」という値が返ります。

{=IF(ISERROR(MATCH("AA",A1:A20,0)),"データなし",MIN(IF(A1:A20="AA",B1:B20)))}
とすると「データなし」という値が返ります。