定数と値の列の間の最小値を見つけようとしています。理想的には、別の列を参照できるように行番号を返したいと思います。
通常、コード(Matlabなど)では、次のように単純でした。
[minVal, minIdx] = min(abs(constant - arrayOfNumbers))
次に、返されたインデックスを使用して、正しい列を参照します。
どうすればExcelでこれを行うことができますか?
定数は4184です。
1 Col A Col B
2 5040 -0.29
3 4840 -0.41
4 4620 -0.55
5 4450 -0.67
6 4200 -0.86
7 4050 -1
8 3970 -1.11
9 3880 -1.25
10 3850 -1.3
最小絶対差は、行6でabs(4184-4200)= 16になります。したがって、B(6)を参照して-0.86を返します。
(4184
)に対してテストしたい値がセルにあるとしましょうD1
。
最初のステップで、最小の絶対差を見つけます。この数式をE1
配列数式としてセルと言います(Ctrl-Alt-Enterで受け入れます)。
=MIN(IFERROR(ABS(A:A-$D$1),""))
次に、この値が含まれている行を見つけます。この数式をF1
通常の数式としてセルに入力します
=IFERROR(MATCH(D1-E1,A:A,0),MATCH(D1+E1,A:A,0))
注1:IFERROR
機能にはExcel2007以降が必要です
注2:中間数式が必要ない場合は、それらを(配列数式として)組み合わせることができますが、これはそのMIN(...)
部分を繰り返します
=IFERROR(MATCH(D1-MIN(IFERROR(ABS(A:A-$D$1),"")),A:A,0),MATCH(D1+MIN(IFERROR(ABS(A:A-$D$1),"")),A:A,0))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加