[[20060213211131]] 『維持関数?』(あほ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『維持関数?』(あほ)
Exelがよくわかっていない初心者です。よろしく

例えば、セルA1には処理の計算結果とか観測データ値とかが刻々と出力されます。
その値が定数・閾値(C)を一度でも超えると記憶させる関数は考えられるのでしょうか。

電気回路でいうとLatch回路です。ロジック的にはIF,AND,ORで構成される
のですが、どうしてもフィードバックのところで循環参照とExcelに怒られてしまう。

VBAでやれば簡単なんだろうけど、なんとか関数の範囲でで処理したいのですが
無理なんだろうか?


 どういう数式を入力しているか見てみないと論理が良くわかりませんが、
例えば、
「A1を参照し、A1の値が一定値を超えたら、その時のA1の値を保持し続けなさい、
(あるいはA1への参照をやめて定数を返しなさい)ただし、A1の値はその後も
次々と変化します」という関数はないか、ということですか?
だとすれば、関数の仕様から言って、無理でしょう。
変化したA1がかつてどんな値を表示していたかはその関数には覚えていることが
出来ません。A1に表示される値を別のシートなどへ転記するような仕組みを簡単
だと思えるVBAで挑戦してください。
(みやほりん)(-_∂)b
 
#ハンドルネームは「あなた」の人格の一部です。
#これっきりでも、もう少し工夫してほしいものです。

(みやほりん)さん、ご指摘ありがとうございます。(恐縮です。

>A1の値が一定値を超えたら、その時のA1の値を保持し続けなさい
  それでも良いのですが、目的は超えたかどうかです。
  入力した具体的な式は

    A3:  IF(A1>C,1,0)
    A4:  IF(A5=1,1,0)                 '保持・フィードバック
    A5:  IF( OR(A3=1,A4=1),1,0)       '当然、A4-A5の相互参照で怒られる
>#ハンドルネームは「あなた」の人格の一部です。
  失礼しました。今後注意します。


 えっと・・・、上記の関係であれば、A5の式は=IF(A3=1,1,0)と同じかな・・・?

 (川野鮎太郎)

 静的なデータでA1の値がどうであるか、判断するだけなら鮎太郎さんのご指摘のとおり
なんでしょうけれども・・・・。
相談者さんは(・・・ほら、ハンドルネームで呼べない・・・)A4を流れをせき止める
「かんぬき」の役目をさせようとしていらっしゃるのでは、と推測します。A4はいわば、
「動的に変化するA1が定数Cをかつて超えたことがあるかどうか」のフラグですよね。
 
先にも説明しましたがセルそのものは過去の値がどうだったかは記録されていませんし、
関数も過去にどんな値を返していたかは記録されません。
ご提示いただいた数式も(論理としてはA4A5のどちらかが一度でも1になればそのまま
1を表示し続けますが)循環参照エラーと判断されて計算されません。
 
処理されようとしている全体像はわかりませんが
A1を動的に変化させるのではなくて、静的な値としてワークシートに記録していく様な
仕組みにするか、あるいは、動的な値を返すA1が定数Cを超えたらどこかに定数入力して
フラグとするようなVBAを組まれるのが、現実的であると考えます。
(みやほりん)(-_∂)b

(みやほりん)さん、(川野鮎太郎)さん

私の意図と問題点は(みやほりん)さんがご指摘されている通りです。
何とか工夫か、便利な関数がないかなと思っていましたが、納得しました。
静的な変数を前提とする表計算で、動的な変数を処理しようとしていました。
どうもありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.