[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一番近い値の行、列番号を返したい』(R)
A B C D E F 1 2 0.36 a\b 1 1.1 1.2 1.3 3 aの値 1 1 1.1 1.2 1.3 4 bの値 2 0.5 0.55 0.6 0. 65 5 3 0.333 0.367 0.4 0.433 6 4 0.25 0.275 0.3 0.325 7 5 0.2 0.22 0.24 0.26
A2のセルの値にもっとも近い値を表から検索して、その値の時のa,bの値を それぞれA3,A4に返すにはどうすればいいでしょうか? 上記サンプルだと、一番近い値は0.367なのでA3には3,A4には1.1が入ります。 よろしくお願いいたします。
A3=MIN(IF(ABS(C3:F7-A2)=MIN(ABS(C3:F7-A2)),B3:B7,"")) A4=MIN(IF(ABS(C3:F7-A2)=MIN(ABS(C3:F7-A2)),C2:F2,"")) 両方とも、ShiftキーとCtrlキー押しながらEnterキーで確定させて配列数式にしてください。
ただし、近似値が複数有る場合は、B2に近い方になります。
(川野鮎太郎)初めのABSが抜けていたので追加・・・(^_^A;
A3に、=INDEX(B3:B7,SUM(ROW(C3:F7)*(MIN(ABS((C3:F7)-A2))=ABS((C3:F7)-A2)))-2) A4に、=INDEX(C2:F2,SUM(COLUMN(C3:F7)*(MIN(ABS((C3:F7)-A2))=ABS((C3:F7)-A2)))-2) どちらもCtrl+Shift+Enterで確定させます。一番近い値が複数あると 正しく表示されません。(だから余り役にたたないかも) (純丸)(o^-')b
※ A4に入る式を修正しました。6/3 8:27a.m
鮎さんの数式のIF文は、第1引数の配列は要素が20個あるのに、 第2引数の配列の要素は5個しかない。これで答えが出るのは第2引数を 4回繰り返しているという事ですよね。配列同士の比較などは 同じ要素数じゃないとエラーになると思ってましたが、そうじゃないんですね。 また一つ勉強になりました。m(__)m (純丸)(o^-')b
う〜ん・・・ 感覚では分っても、頭が理解しない。。。 (sin) こういう事かな〜? =IF(B1=B1*1,A1,"") このB1部分を範囲拡大して、配列にした! 勝手に納得としよう。 お邪魔しました。(sin)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.