[[20050602211247]] 『一番近い値の行、列番号を返したい』(R) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一番近い値の行、列番号を返したい』(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.