• ベストアンサー

エクセル 条件つきで最小値を求めたいです

A列に200名を超える生徒の名前が入っています。 B列に計算テストの結果が入っています。 計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。 A   B 田中  42 佐藤  48 鈴木  52 佐藤  56 田中  72 鈴木  60 鈴木  23 などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。 『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使用しているパソコンはexcel2000です。 他のシートやC列から右に生徒を判別する関数を入れていけば、私の知っている知識でも可能なのですが、関数を多用すると重くなりますし、避けたいです。また、もともとのデータの入力の仕方を変えたらいいのですが、それはできない状態です。 =MIN(IF(A2:A7="鈴木",B2:B7),false) みたいな感じかなと式を立てたのですが、うまくいきません。上の状態で、セルに23と表示されるには、どうすればいいか教えてください。お願い致します。m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>式を立てたのですが、うまくいきません。 ⇒=MIN(IF(A1:A7="鈴木",B1:B7)) この数式は、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

kanitako
質問者

お礼

回答ありがとうございます。 shift+ctrl+enterキーを同時押下してみました。 {  }の記号が両端につきました。 ですが、結果は0と表示されました。何が問題でしょうか? ご教授下さい。宜しくお願い致します。m(_ _)m

その他の回答 (4)

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.5

あの... NO.1さんの回答をよく読んでください。 =MIN(IF(A1:A7="鈴木",B1:B7)) となっていますよね。 =MIN(IF(A2:A7="鈴木",B2:B7),false) では、0になって当然です。 ※なお、その他の可能性として B列が文字列データというのも考えられます。 その場合は データ→区切り位置→OK

kanitako
質問者

お礼

あ、ホントだ! できました!ありがとうございます!!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

別案ですが、ピボットテーブルという方法もあります。 データの範囲選択して ツールバーのデータ=>ピボットテーブルとピボットグラフ・・・ をクリック ウィザードに従って新規シートにピボットテーブルを作成 楯列に 名前 、その横の部分に 点数を入れます。 点数の部分を右クリックして、フィールドの設定で 最小値 に変更 そのほか、平均とかもありますので便利かと・・・

  • tanosimie
  • ベストアンサー率40% (6/15)
回答No.3

すみません もう一度回答します ”最大値”ではなく ”最小値”を選んでください、 まちがえました。

kanitako
質問者

お礼

なるほど、データを並べ替えをすると、簡単ですね。 丁寧な回答ありがとうございます。 ただ、今回はデータ元のデータは編集したくないんですね。いろいろと事情がありまして…。 数式一発で最小値を求めることを模索しています。

  • tanosimie
  • ベストアンサー率40% (6/15)
回答No.2

ごめんなさい、私ならこの場合 データの”集計”を使います。 A列に1~ 連番を降っておいて、B列に名前(B1のセルは”名前”) C列に得点(C1のセルは”得点”)を入力して、 まず名前順に並べ替えをして(すると同一人物が集合すると思います ツールメニューの ”データ”をクリックして ”集計”をクリックする、グループの基準を”名前”にして、集計方法を”最大値”に、集計のフィールドを”得点”にして ”現在の集計表と置き換える”、”集計行を データの下に挿入する” にチェックを入れる OK をクリックするとできると思います 最後に 左上の方に 1 2 3 というボタンがあるので 2 をクリックすれば 各名前ごとの最高得点が出ると思います