プロが教えるわが家の防犯対策術!

MAXIFS関数は、条件を満たす最大値を出す関数のようですが、
10
3
148
等の数値から最大値出す場合は良いですが、

以下の様なテキストの中から最大値を出すにはどうしたら良いでしょうか?
aaa-001
bbb-002
aaa-002
bbb-001

↑上記は数値ではありませんがソートすれば以下の様になります。
aaa-001
aaa-002
bbb-001
bbb-002

その時の最大値を取りたいのです。正確には「aaa」「bbb」それぞれの最大値。
(値ではないのでソートした時の最終行という事になりますでしょうか。)
例の場合だと
aaa-001
bbb-002 最大
aaa-002 最大
bbb-001
の様にフラグを付けたいのです。

MAXIFS関数を試してみましたが、全ての行が「0」となってしまいました。
良い方法ないでしょうか?

A 回答 (2件)

数値を別の列に抽出して、抽出した数値に対して処理を行えばいい。


てか、それ以外に手段は無い。
    • good
    • 0

こんにちは



データ形式がよくわかりませんが・・・

全てが「文字3文字」+「-」+「数字3文字」という形式になっているとして、「aaa」で始まる文字の数字部分の最大値を求めたいのなら・・・

A列に値が並んでいて、隣のB列に最大と表示したいのなら、
B1セルに
=IF(RIGHT(A1,3)*1=AGGREGATE(14,6,RIGHT(A$1:A$100,3)/(LEFT(A$1:A$100,3)="aaa"),1),"最大","")
を入れて下方にフィルコピーすることで表示されると思います。

「bbb」に関しても同時に求めたいのなら、式を組み合わせればよいですが、長くなります。
どこかのセルに一旦最大値を求めておいて、「各行の値=最大値」かどうかで判断するほうが計算量は激減します。
    • good
    • 1
この回答へのお礼

AGGREGATE なんて高度な関数、初めて知りました。
パラメータで19種類集計できる関数なんてどんな場面で必要奈だろう、と思っていましたが勉強になりました。
ありがとうございます。

お礼日時:2021/04/09 10:38

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