- ベストアンサー
エクセル 条件つきで最小値を求めたいです
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
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>式を立てたのですが、うまくいきません。 ⇒=MIN(IF(A1:A7="鈴木",B1:B7)) この数式は、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
その他の回答 (4)
- n_na_tto
- ベストアンサー率70% (75/107)
あの... NO.1さんの回答をよく読んでください。 =MIN(IF(A1:A7="鈴木",B1:B7)) となっていますよね。 =MIN(IF(A2:A7="鈴木",B2:B7),false) では、0になって当然です。 ※なお、その他の可能性として B列が文字列データというのも考えられます。 その場合は データ→区切り位置→OK
お礼
あ、ホントだ! できました!ありがとうございます!!
- hallo-2007
- ベストアンサー率41% (888/2115)
別案ですが、ピボットテーブルという方法もあります。 データの範囲選択して ツールバーのデータ=>ピボットテーブルとピボットグラフ・・・ をクリック ウィザードに従って新規シートにピボットテーブルを作成 楯列に 名前 、その横の部分に 点数を入れます。 点数の部分を右クリックして、フィールドの設定で 最小値 に変更 そのほか、平均とかもありますので便利かと・・・
- tanosimie
- ベストアンサー率40% (6/15)
すみません もう一度回答します ”最大値”ではなく ”最小値”を選んでください、 まちがえました。
お礼
なるほど、データを並べ替えをすると、簡単ですね。 丁寧な回答ありがとうございます。 ただ、今回はデータ元のデータは編集したくないんですね。いろいろと事情がありまして…。 数式一発で最小値を求めることを模索しています。
- tanosimie
- ベストアンサー率40% (6/15)
ごめんなさい、私ならこの場合 データの”集計”を使います。 A列に1~ 連番を降っておいて、B列に名前(B1のセルは”名前”) C列に得点(C1のセルは”得点”)を入力して、 まず名前順に並べ替えをして(すると同一人物が集合すると思います ツールメニューの ”データ”をクリックして ”集計”をクリックする、グループの基準を”名前”にして、集計方法を”最大値”に、集計のフィールドを”得点”にして ”現在の集計表と置き換える”、”集計行を データの下に挿入する” にチェックを入れる OK をクリックするとできると思います 最後に 左上の方に 1 2 3 というボタンがあるので 2 をクリックすれば 各名前ごとの最高得点が出ると思います
お礼
回答ありがとうございます。 shift+ctrl+enterキーを同時押下してみました。 { }の記号が両端につきました。 ですが、結果は0と表示されました。何が問題でしょうか? ご教授下さい。宜しくお願い致します。m(_ _)m