プロが教えるわが家の防犯対策術!

はじめまして。どうか、お力をかしてください。

関数を勉強しはじめたばりなのですが、自分で考えて
試してみてもどうもうまくいきません。
どの関数を利用したらいいのかアドバイスをお願いします。

別のシートにある表((1))から、数値((2))の近似値を検索したいのです。
まず表((1))の行方向にコード(項目)がいくつかあります。
数値((2))にはコードがふってあるので、表((1))の同じコード(項目)の列を検索して、その列から数値((2))の近似値を検索したいのです。

表の列を指定してその中から近似値を検索したいとゆうことです。
いろいろ考えて試してみたのですがうまくいきません。
どの関数を利用したらよいか、列や行、検索範囲の指定についてもポイントが
あれば教えてください。

説明が分かりづらいかもしれませんが、宜しくお願いします。

A 回答 (2件)

やり方は色々あるかもしれませんが私の思いつく方法です。



どの部分で詰まったのかわからないのですが、私なら、
Vlookup,Hlookup,match,index関数で記述します。
仮に、A1:H10の表があるとします。
ここで、A列には行方向にコードが入っています。B列以降に数字が列挙されているとします。
さて、あるセル(ここでは、A13,B13とします)にそれぞれコード(A13)、数値(B13)が入っているとして、C13セルに答えを計算したいとします。

C13に記入する関数は、
HLOOKUP(B13,INDEX(B1:H10,MATCH(A13,A1:A10,0),0,1),1,TRUE)
と書けばよいでしょう。

と、これだけならば「近似値」ではなくて、B13の数値を超えない最大値しか返しません。
もし、四捨五入が必要ならば、検索テーブルは元のテーブルから四捨五入用のテーブルを生成してそちらを検索して、更にもとのテーブルから値を持ってこなければなりません。

いま、元のテーブルをI1:O10に用意されていたとします。
このデータから四捨五入用のテーブルをB1:H10に作ります。
作り方は簡単で、B列はそのままI列のコピーになります。
C列からは、たとえばC1セル内は「(I1+J1)/2」になります。
相対指定であればあとは、B1:H10内にコピーすればいいわけです。
なぜそうするといいかというと、要するにB13を越えない最大値が丁度四捨五入の敷居値になるようにテーブルを作ってあげるわけです。

さて、この場合の近似値を求める式は、
INDEX(I1:O10,MATCH(A13,A1:A10,0),MATCH(B13,INDEX(B1:H10,MATCH(A13,A1:A10,0),0,1),1),1)
少々長くなりましたがこんな式になります。
つまり、四捨五入検索用テーブルを用意して、同等の位置のもとの近似値を参照するわけです。

四捨五入以外でも同じ手法が使えるでしょう。

では。
    • good
    • 0
この回答へのお礼

ありがとうごあざいます。
教えて頂いた式でできました。
お礼が遅くなってしまって。すみません。
使った関数や考えは同じところまでいってたのですが。
自分では、範囲や論理が理解できてなくてどうしても
うまくいかなかったんです。
本当にありがとうございました。

お礼日時:2001/03/16 11:04

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-関数-生年月日から学年を自動表示
http://www2.odn.ne.jp/excel/waza/function.html#S …

参考URL:http://www2.odn.ne.jp/excel/waza/function.html#S …
    • good
    • 0
この回答へのお礼

遅くなってすみません。
ありがとうがございました。
こんなHPがあるとは、教えていただいて助かりました。
これからの勉強や困ったときの参考に使わせていただきます。

お礼日時:2001/03/15 18:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!