- ベストアンサー
EXCELで条件あてはまるセルの最大最少値を求める
下記のような一覧表から A 10 B 20 B 15 B 30 C 50 C 40 以下のような表を作りたいのですが。 ABCは手動で入力し、最大値・最小値は関数で求めたいです。 最大値 最小値 A 10 10 B 30 15 C 50 40 関数だけでは難しいでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
関数では、配列数式になってしまう。 MAXIF関数は無い。 Googleで「エクセル MAXIF」で照会してみること。 ーーー それでVBAで考えた(お呼びではないかもしれない。参考に読んでくれれば良い) 例データ A,B列 A 8 B 20 B 5 B 30 C 45 C 40 B 31 B 35 A 12 A 14 D 34 D 44 D 51 A列のダブリ漏れの無い1組をD列に作る。 操作で、データーフィルターフィルタオプションの設定ー重複するレコードは無視するで作れる(2003までの操作)。 (質問にはエクセルのバージョンは書いてするものだ) D,E、F列 A 14 8 B 35 5 C 45 40 D 51 34 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row For i = 1 To d x = Range("D:D").Find(Cells(i, "A")).Row If Cells(x, "E") < Cells(i, "B") Then Cells(x, "E") = Cells(i, "B") '最大値書き換え End If If Cells(x, "F") = "" Then Cells(x, "F") = Cells(i, "B") '最小値書き換え Else If Cells(x, "F") > Cells(i, "B") Then Cells(x, "F") = Cells(i, "B") ''最小値書き換え End If Next i End Sub 実行すると結果は 上記E,F列のようになる。 データを1回だけ上から下へ読み終わると、結果が出る、という(有名な)アルゴリズムで、最少時間だろう。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
お礼
わざわざプログラムの作成ありがとうございました。 数としては100件程度のものでしたので、手作業で処理することにしました。 ありがとうございます。