質問 |
||
| 質問者:mi960 | エクセル X値以上の近似値検索 | |
|---|---|---|
困り度:
|
エクセルで、X値以上の近似値を探す関数を探しています。 X値以下の最大近似値は、VLOOKUP関数で検索できるのですが、X値以上の最小近似値を検索する関数がわかりません。 例: M2(X値) メーカー 3.0 A社 3.5 B社 4.2 C社 : : X値が3.1M2の場合 B社を検索するように関数をつくりたいのですが。 宜しくご教授お願いします。 |
|
質問投稿日時:08/04/10 18:11 質問番号:3938006 |
||
回答良回答10pt |
|
| 回答者:mu2011 | 次の方法は如何でしょうか。 A1:B10範囲をリスト(見出し行あり)として、C1にX値が入力、C2にメーカ名を表示とします。 C2に=INDEX(B:B,SMALL(IF($A$2:$A$10>=C1,ROW($A$2:$A$10),99999),1))と入力、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/11 11:44 回答番号:No.2 |
|
| この回答へのお礼 | 回答いただきまして、ありがとうございました。 すごいですね、勉強になりました。試してみます。 |
回答良回答20pt |
|
| 回答者:zap35 | M2(X値)と書かれた列がA列だとして、D1セルに「3.1」を入力し、適当なセルに以下の式を貼り付けます =MATCH(MIN(INDEX(SUBSTITUTE((A1:A100>=D1)*1,0,10^5)*ABS(A1:A100-D1),))+D1,A1:A100,0) するとA列の値が「3.5」である行の行番号を返します。質問の例では「3」ですね。B列(メーカー)の値を取得したいなら、上記の式にINDEX関数を組み合わせれば良いです =INDEX(B:B,MATCH(MIN(INDEX(SUBSTITUTE((A1:A100-D1>=0)*1,0,10^5)*ABS(A1:A100-D1),))+D1,A1:A100,0)) 結果は「B社」となるはずです。 データは100行目まであるものとしていますが、必要に応じて変更してください |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/10 18:32 回答番号:No.1 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |