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

    A列   B列
1行  りんご   3
2行  りんご   5
3行  なし    2
4行  なし    3
5行  なし    1
6行  なし    7
7行  みかん  2
8行  みかん  2
9行  みかん  3
上のようなデータで、りんご、なし、みかんについてそれぞれの最小値・最大値を別のセルに表示させるには、どんな関数を使ったらいいでしょうか。応用したい実際のデータは、A列の種類が200ほど、それぞれの種類のデータ数は1~80くらいあります。
よろしくお願いします。

A 回答 (5件)

添付図のように、


D2:D4に、「りんご、なし、みかん」といれます。
E2に、
=MAX(IF($A$1:$A$11=D2,$B$1:$B$11,""))
といれて、Ctrl+Shift+Enterを押します。数式の前後に{ }がついて配列数式になります。
E3、E4にフィルドラッグします。最大値が入ります。

F2に、
=MIN(IF($A$1:$A$11=D2,$B$1:$B$11,""))
といれて、Ctrl+Shift+Enterを押します。数式の前後に{ }がついて配列数式になります。
F3、F4にフィルドラッグします。最小値が入ります。

実際の表に合わせて範囲を調節してください。
「同名の値の最小値、最大値を求めるには?」の回答画像2
    • good
    • 0
この回答へのお礼

とても簡単明解な数式で、試してみましたら2500ほどのデータをすっきり集計してくれました。ありがとうございました。

お礼日時:2013/05/01 21:17

ピボットテーブルが良さそうですが、集計機能もありますよ!って回答。


0. 見出し行を挿入し、A列で並べ替え
1. データ - 集計
 グループの基準 : 見出し
 集計の方法 : 最小値
 集計するフィールド [レ]数値

添付図参照

単発? で良いなら データベース関数を使うってのもありだと思います
D1セル 見出し
D2セル りんご

=DMAX(A:B,2,D1:D2)
=DMIN(A:B,2,D1:D2)
「同名の値の最小値、最大値を求めるには?」の回答画像5
    • good
    • 0
この回答へのお礼

私にとって新しい方法を教えていただきありがとうございます。いろいろな場面で利用していきたいと思います。

お礼日時:2013/05/01 22:27

No3の回答に間違いがありましたので訂正します。



G2セルの最小値は以下の数式になります。

=MIN(INDEX(($A$2:$A$1000<>$E2)*1000+$B$2:$B$1000,))
    • good
    • 0
この回答へのお礼

わざわざ二度の回答をしていただきありがとうございます。最大値は正確に表示できました。最小値がデータ範囲をデータ数以内にしないと正確に表示してくれませんでした。2700強のデータがありましたので、3000までを範囲としましたらすべて3000の値になってしまいました。データ数と同じかそれ以下の範囲に設定した場合は正確に表示されました。

お礼日時:2013/05/01 21:56

E2セル以下に果物名が表示されているなら、F2セル(最大値)およびG2(最小値)セルに以下の式を入力し下方向にオートフィルコピーしてください。



F2セル: =MAX(INDEX(($A$2:$A$1000=$E2)*$B$2:$B$1000,))
G2セル: =MIN(INDEX(($A$2:$A$1000=$E2)*$B$2:$B$1000,))
「同名の値の最小値、最大値を求めるには?」の回答画像3
    • good
    • 0

こんばんは!


一例です。
>実際のデータは、A列の種類が200ほど、それぞれの種類のデータ数は1~80くらいあります。
とありますので、とりあえず2000行まで対応できる数式にしてみました。

↓の画像のようにC列を作業用の列として使用します。
(A列データを重複なしに表示するため)

C2セルに
=IF(COUNTIF(A$2:A2,A2)=1,ROW(),"")
という数式を入れオートフィルでずぃ~~~!っと下へコピー!
(A・B列の途中に空白がない場合はC2セルのフィルハンドルでダブルクリック)

そしてE2セルに
=IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1))))

F2セルに
=IF(E2="","",MAX(IF(A$1:A$2000=E2,$B$1:$B$2000)))

G2セルに
=IF(E2="","",MIN(IF(A$1:A$2000=E2,B$1:B$2000)))

F2・G2セルは良セルとも配列数式になりますので、
Shift+Ctrl+Enterで確定します。
数式の前後に{ }マークが入り配列数式になります。

最後にE2~G2セルを範囲指定 → G2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

※ 配列数式はPCにかなりの負担をかけます。データ量が大量にある場合は
もう1列作業列を追加して、配列数式を使用しない方法が良いと思います。m(_ _)m
「同名の値の最小値、最大値を求めるには?」の回答画像1
    • good
    • 0
この回答へのお礼

さっそく回答していただきありがとうございます。
わたしの知らない関数もありましたが、なんとか理解できました。
配列数式がPCに負担が大きいことも注意してやってみようと思います。

お礼日時:2013/05/01 09:43

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