• 締切済み

エクセルの基礎的な質問ですがお願いします

こんな基本的なことがわからなくなって悲しいです。基礎が理解出来てないようで情けないのですが教えて下さい。 「或るセルに刻々と入ってくる数字を自分の数字と比較しながら、自分より小さい数字だったら、それを自分の数字とする」にはどうすればいいのでしょうか。 経過は自分の数字が最少数字に置き替わっていく、というものですが。 具体的には、 「A1」セルに刻々と入ってくる数字を「B1」セルと比較し、「A1<B1」ならば「B1」を「A1」の数字に置き替えていきたいのです。 理屈的には,「B1」の式は「=if(A1<B1,A1,B1)」の循環参照ということだと思いますが、最初に「B1」の値が0になってしまうので式が成り立ちません。 どのようにすればいいのでしょうか。よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 >「或るセルに刻々と入ってくる数字を自分の数字と比較しながら、自分より小さい数字だったら、それを自分の数字とする」にはどうすればいいのでしょうか。 それは、思った以上に難しいです。 手で入力する場合は、オプションで、循環参照を1回許せば、関数で出来ます。 しかし、自動で入ってくるような場合は、大事なことは、どのように数字が入ってくるか、その経路が大事です。VBAのWorksheet_Change では反応しません。たとえば、インターネットのデータを自動で取得するプログラムがあって、それが、Excelで表示しているとか、計測機器から、数分後とに決まって入ってくるとか。

datdat
質問者

お礼

有難う御座いました。これを機会にVBAの勉強を始めます。システムがらみで考えないとダメということですね。有難うございました。

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

>理屈的には,「B1」の式は「=if(A1<B1,A1,B1)」の循環参照 そのとおりです。 たとえばC1に =if(A1<B1,A1,B1) ならばできると思います。 C1の結果を、数式から、実際の得られた値に変更して、B列を消去する 方法も考えられます。 数式の結果を値にする方法 C列を選択、コピィ 「編集「「形式を選択して貼り付け」 「値」のみにチェックをいれて、OK で、数式から値になります。

datdat
質問者

お礼

有難う御座いました。C1を使ってB1を替える時に手作業になるので、解決するにはやはりマクロという事になるわけですね。VBAは全然勉強してなかったので後悔してます。ありがとう御座いました。

noname#79209
noname#79209
回答No.1

お望みのことは、ワークシート関数では不可能です。 ワークシート関数には、セルの値を入れ換えたりする機能はないのです。 実現するとしたら、VBAでしか出来ません。

datdat
質問者

お礼

やはり簡単にはいかないんですね。一見単純なことに見えるのですが、有難うございました。

関連するQ&A