dポイントプレゼントキャンペーン実施中!

セルA1に規定値、A2に最小値、A3に最大値がすでに入力されています。
A5、B5に異なる入力値を入れた時、規定値と比べ最小値・最大値の間で一番遠い値のセルをA10に返したいです。

規定値A1→10.00
最大値A2→10.10
最小値A3→9.80

入力値A5→9.81
入力値B6→10.02

この場合、A10にはA5の値が返ります。

関数で処理できれば幸いですがVBAでも構いません。

解決策があれば教えていただけませんでしょうか?
宜しくお願い致します。

A 回答 (3件)

こんにちは!



対象が二つだけなので、どちらかを返す!というコトなので
コツコツIF関数のネストでやってみました。

=IF(AND((A5>=A3)*(A5<=A2),(B6>=A3)*(B6<=A2)),IF(ABS(A1-A5)>=ABS(A1-B6),A5,B6),IF((A5>=A3)*(A5<=A2),A5,IF((B6>=A3)*(B6<=A2),B6,"該当なし")))

※ 万一「絶対値」が同じなら
A5セルの方が表示されます。

※ 細かい検証はしていませんので、
お望みどおりにならなかったらごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます!
おかげさまで良い物が出来ました。

お礼日時:2020/10/18 06:35

》 A2に最小値、A3に最大値


其れ、眞面(マジ)ですか?
    • good
    • 0

複数セルを使えば可能です



B5
=IF(AND(A5>$A$3,A5<$A$2),1,2)
C5
=INT(IF(B5=1,ABS($A$2-A5),0)*1000)
D5
=INT(IF(B6=1,ABS(A6-$A$3),0)*1000)
下にコピー

後はどこでも
E5
=MAX(C:D)
F5
=IF(ISERROR(MATCH(E5,C:C,0)),0,MATCH(E5,C:C,0))
G5
=IF(ISERROR(MATCH(E5,D:D,0)),0,MATCH(E5,D:D,0))

結果
H5
=INDIRECT("A"&SUM(F5:G5))

いらない表示(文字)は白にすればよいかと思います
    • good
    • 0
この回答へのお礼

とても良いヒントいただきました、ありがとう御座います。

お礼日時:2020/10/18 06:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!