[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『循環参照の回避方法』(通りすがり)
お世話になります。
今、Shhet2で
B1=Max(Sheet1!A:A)
B4=Min(Sheet1!A:A)
です。
スクロールバーを2個配置し、一方は
C2に、他方はC3にリンクさせています。(共に0-100%レンジ)
D2=(B1-B4)*(100-C2)/100+B4
として抽出用最大値
D3=(B1-B4)*(100-C3)/100+B4
として抽出用最小値
を設定します。
抽出用値が大小逆転しない為に
B2=IF(D2<B3,B3,D2)
B3=IF(D3>B2,B2,D3)
としたかったのですが、B2とB3は循環参照になってしまいます。
循環参照にしない様に
B2>B3をキープする方法は無いでしょうか。
Worksheet_Change()を使う手も考えましたが
Bookをxlsx形式で保存したいという要望もあり、
なんとかうまい手は無いでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
B2: =MAX(D2:D3)
B3: =MIN(D2:D3)
ではダメなんですか?
(メジロ) 2019/04/02(火) 11:48
それだと確かに循環しないのですが、
スクロールバーを中間付近からスクロールしたとき、
B2を動かす側を下げていくとB3が下がってしまいます。
B2はB3以上ですが、B3を動かすのは他方のスクロールバーのみとしたいのです。
やはり無理なのでしょうか。
(通りすがり) 2019/04/02(火) 11:54
>スクロールバーを中間付近からスクロールしたとき、 >B2を動かす側を下げていくとB3が下がってしまいます。
そんなにB2の値を下げた人が悪いんじゃないですか?
そうは言っても、そんな輩は必ず出てきますよね。(ミス操作ってこともあります)
・・で、その時どう言う結果になればいいんですか?
そこの説明が肝心ですよ。
※具体的数値を使って説明されれば、もっと分かり易くなるんですが・・多くは望めないでしょうね・・
(半平太) 2019/04/02(火) 14:37
Sheet1にデータが数千個あります。
このうちの部分抽出をしたものから平均値などの加工データを作成したいと思っています。
部分抽出の方法はセル区間ではなく値区間です。
値区間の大きい方をSheet2のB2に、
値区間の小さい方をSheet2のB3に入れます。
B1はSheet1!A:Aの最大値
B4はSheet1!A:Aの最小値
にしました。
B2とB3は値入力ではなく、スクロールバーで視覚的に入力したいと言う目的です。
このとき、
B1>B2>B3>B4
の大小関係がキープできる様にしたかったのです。
作業用セルとしてC2とC3に0-100の値が入る様にスクロールバーのリンクを設置しました。
D列はスクロールバーが示す直接の値を演算しました。これも作業セルですが、
そのままB2=D2、B3=D3としました。
このままでは、C2とC3の値(スクロールバーの位置)が逆転した時に
B2とB3の大小関係も逆転してしまうのです。
B2の変化幅はB1〜B3で、B3の変化幅はB2〜B4としたいのです。
B2とB3で循環参照にならない様な式は書けないでしょうか。
まだ解り難い説明であったならすみません。
なかなか伝えにくいです。
(通りすがり) 2019/04/02(火) 15:08
こうなってしまった時にB2,B3がどうなるのが希望か書いてください。
(cal) 2019/04/02(火) 15:46
>このままでは、C2とC3の値(スクロールバーの位置)が逆転した時に >B2とB3の大小関係も逆転してしまうのです。
>B2の変化幅はB1〜B3で、B3の変化幅はB2〜B4としたいのです。
>B2はB3以上ですが、B3を動かすのは他方のスクロールバーのみとしたいのです。
要望が両立しないです。
何を諦めるか、何を制限するか、しかないです。
(半平太) 2019/04/02(火) 15:49
逆転しないように頭打ちにしたいのです。
例えば:
B1=100
B4=0
で
B2=80の時
B3は80までしか上がらない
同じく
B3=30ならB2は30までしか下がらない
という風にしたいのです。
半平太さん。ありがとうございます。
やはり両立は無理ですか。
マクロは試してないですが、セル値変更イベントを使えばできるのかな、と思っています。
となると、あきらめるのはマクロなしブックと言う事になりそうですね。
calさん。半平太さん。メジロさん。
ありがとうございました。
(通りすがり) 2019/04/02(火) 16:41
B2=80、 B3=85となってしまった状況の直前が B2=90、 B3=85だったのか、B2=80、 B3=75だったのかで 頭打ちにしたいセルが違うわけですよね。
(cal) 2019/04/02(火) 20:09
そうなんです。
何か別案を考えてみます。
マクロ化するか、中央値と幅のスクロールバーに変更するか。
どちらにしてもやりたいへの実現条件からは外れてしまいますが。
また悩む事があったらご協力下さい。
(通りすがり) 2019/04/03(水) 09:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.