[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『範囲中の0の近似値を探しその隣のセルの値を表示する』(mimi)
ユーザー定義関数です。 1) エクセル画面より Alt + F11 でVBEを起動 2) 「挿入」->「標準モジュール」で右空白部分に下記コードを貼り付け 3) X をクリックしてエクセル画面に戻る
セルに
=minimum(B1:C100,-2) (,2)は表示したい列の右端(右端を含む)からの列数、隣であれば、2
Function minimum(rng As Range, Optional ref As Long = -2) Dim x, y, adrs As String, r As Range adrs = rng.Columns(rng.Columns.Count).Address x = Evaluate("min(if(" & adrs & ">=0," & adrs & "))") y = Evaluate("max(if(" & adrs & "<=0," & adrs & "))") z = Application.Min(Abs(x), Abs(y)) If z = Abs(y) Then z = y minimum = rng.Columns(rng.Columns.Count).Find(z, , , xlWhole).Offset(, ref + 1) End Function (seiya)
関数で求める場合の例です。 D列を作業列として使い、D1=ABS(C1) として、D100までコピーしておきます。
=INDEX(B1:B100,MATCH(MIN(D1:D100),D1:D100,0))
とすれば、ご希望の結果が得られませんでしょうか。 作業列を使わない場合は、
=INDEX(B1:B100,MATCH(MIN(ABS(C1:C100)),ABS(C1:C100),0))
として、こちらは配列数式ですからCtrlとShiftを押しながらEnterで確定してください。 どちらも、 1.C列の途中に空白があるとゼロとみなして、そのセルが近似値となります。 2.近似値が同じであるセルが二つ以上ある場合は、上にある行を選択します。 (sato)
Re:mimi
ありがとうございました。おかげさまでうまくいきました。いろんな方法があるんですね。
勉強になりました。 どうもです!
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.