• ベストアンサー

Excel 関数を教えてください

はじめまして。どうか、お力をかしてください。 関数を勉強しはじめたばりなのですが、自分で考えて 試してみてもどうもうまくいきません。 どの関数を利用したらいいのかアドバイスをお願いします。 別のシートにある表((1))から、数値((2))の近似値を検索したいのです。 まず表((1))の行方向にコード(項目)がいくつかあります。 数値((2))にはコードがふってあるので、表((1))の同じコード(項目)の列を検索して、その列から数値((2))の近似値を検索したいのです。 表の列を指定してその中から近似値を検索したいとゆうことです。 いろいろ考えて試してみたのですがうまくいきません。 どの関数を利用したらよいか、列や行、検索範囲の指定についてもポイントが あれば教えてください。 説明が分かりづらいかもしれませんが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#11476
noname#11476
回答No.1

やり方は色々あるかもしれませんが私の思いつく方法です。 どの部分で詰まったのかわからないのですが、私なら、 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) 少々長くなりましたがこんな式になります。 つまり、四捨五入検索用テーブルを用意して、同等の位置のもとの近似値を参照するわけです。 四捨五入以外でも同じ手法が使えるでしょう。 では。

tororu5
質問者

お礼

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

その他の回答 (1)

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.2

こんにちは  以下のページがご参考になるのでは? 【エクセル技道場】-関数-生年月日から学年を自動表示 http://www2.odn.ne.jp/excel/waza/function.html#SEC25

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html#SEC25
tororu5
質問者

お礼

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

関連するQ&A