• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セル内で変化する値の最大値、最小値を抜きだす。)

セル内で変化する値の最大値、最小値を抜きだす方法

このQ&Aのポイント
  • セル内でランダムに変化させる値の最大値と最小値を抜き出す方法を教えてください。
  • セルの範囲や変化する列に応じて最大値と最小値を抜き出す方法も教えていただけると助かります。
  • 初心者向けに詳細な説明をしていただければ幸いです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

マクロを使わない方法で。 ご利用のエクセルのバージョンが不明ですが Excel2003までを使っているならツールメニューのオプションの計算方法で「反復計算」のチェックを入れる Excel2007以降を使っているならExcelのオプションの数式欄で反復計算のチェックを入れる ご相談の説明が不明瞭ですが, D10の最大値の履歴をF10に,最小値をH10にそれぞれ残したいのだとすると F10には =IF(D10="","",MAX(D10,F10)) H10には =IF(D10="","",MIN(D10,H10)) とそれぞれ記入する。 必要に応じてF10をF20まで,H10をH20までコピーして備えておく D10,F10,H10のそれぞれのセルの位置が変わるのであれば,新しいセルの位置に合わせて同じように数式を作成するだけです。 #参考 F10セルに上記の通りに記入し,F10セルを新しいセル(たとえばI10)にずりずりとドラッグして移動すれば,間違えることもありません #念のため補足 worksheet_changeイベントは,セルに新たな値を手作業やマクロで記入した/消去したときに初めて作動します。 たとえばD列に「数式」などを記入していて,その計算結果が「変わった」というだけでは変化を拾うことはできませんので,「いったい何をしている・どうしたい」ときにご質問のシクミを作動させたいのか,よく理解してから利用する必要があります。

kei__2000
質問者

お礼

 回答ありがとうございます。関数式で「反復計算」により出力できるとは知りませんでした。回答から満足できる結果を得ることができました。また、補足欄にworksheet_changeイベントの説明までいただき、大変助かりました。D列に「数式」を入力していたので、自分の考えていたマクロではうまくいかないことが解りました。ありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

質問の表現があいまいだ。 (1)ポイントは>セル内でとは、正確には「セル範囲内で」か。 特殊な例では1セルに「12,5,23,6」なんて複数データを入れる場合もあるだろうから、正確に表現のこと。 (2)セルD10からD20まで このどれかの値を変えたとき、その状態で、その瞬間の最小値を出すのか。出すのは関数ででも簡単。しかし (3)その瞬間瞬間の最小値の履歴を他の列に残すとなると、VBAで無いやりにくい。 質問者はVBAの経験が無いのだろう。だったら出来ない。 (4)エクセルでは、普通の使い方では、履歴を他のセル(範囲に)次々と残すようなことは、不得手で考えないのだ。 関数をそこそこ、経験していれば、その辺の事情がわかるはず。 どうしてもVBAでやりたいのなら、履歴を残すなら、今前でのデータ(=最終行)の次の行にその瞬間の最小値を出すコードを勉強すれば良い。 Googleででも「エクセルVBAデータ最終行」で照会すれば沢山記事がある。 ーー ChangeイベントなどはVBAの初心者がコピペして済ますようなことではない。徐々に勉強して、良い点、欠点も勉強してから 使うものだ。 >当方初心者ですので、応用が利くように説明していただければありがたいと・・ 何から何まで甘えすぎ。 何処が変わるか、などは、自分で類推して見当を付けて、勉強して、変えたコードで実行をやってみるクセをつけること。

kei__2000
質問者

お礼

(1)ポイントは>セル内でとは、正確には「セル範囲内で」か。 1セルに数式が入ります。 (2)セルD10からD20まで これはランダムに変化する数式が入ります。 (3)その瞬間瞬間の最小値の履歴を他の列に残すとなると、VBAで無いやりにくい。質問者はVBAの経験が無いのだろう。だったら出来ない。 (4)エクセルでは、普通の使い方では、履歴を他のセル(範囲に)次々と残すようなことは、不得手で考えないのだ。関数をそこそこ、経験していれば、その辺の事情がわかるはず。 ですので解る方、できる方がいればとこちらで質問しました。 >当方初心者ですので、応用が利くように説明していただければありがたいと・・ 何から何まで甘えすぎ。 何処が変わるか、などは、自分で類推して見当を付けて、勉強して、変えたコードで実行をやってみて、それでも今まで解らないことが有りましたので、後々質問を繰り返すわけにもいかないのでこのような質問をしました。当方初心者ですので。

関連するQ&A