• ベストアンサー

Excel 関数を教えてください

noname#11476の回答

  • ベストアンサー
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
質問者

お礼

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

関連するQ&A

  • excelの関数をしえてください。

    こんにちは。exceldでの関数で質問です。 使用関数と検索範囲の指定の方法を教えてください。 表は2つあります。 表1は行タイトルがクラス名(A~D)、列タイトルに1~25までの級を表す数字の入った表です。参照表です。  A B C D 1 ○ ◇ ■ △ 2 △ ○ ◇ ■ (内容はすべて違うものです) 3 ■ △ ◇ ○ 4 5 表2は関数を利用して表1より該当するセルの内容を 表示したいのです。 表2 A列にクラス(A~D 表1と同じ項目) B列に級 C列に数値 D列に前年度数値  クラス 級 数値 前数値 A 2 △ △ C   5 ○   ○  B 1 D 3 C列にはD列の前数値の近似値を表1より参照したいのです。その際にクラスわけからAであれば表1の Aクラスの列から近似値をさがしたいのです。 B列にはC列で求めた近似値が表1でどの級かを 求めたいのです。 表2のクラスわけがランダムなのと、 検索範囲がクラスによって異なる箇所となるので 検索範囲の指定の方法、さらにはどの関数を 使用して行えばよいのかわかりません。 説明がわかりづらいかと思いますが、 宜しくお願いします。 OS:NT4.0 excel2000 を使用しています。

  • エクセルの関数について

    検索に使用する関数についてお伺いいたします。 表を二つ作成しました。 シート1には特に項目の指定がなく、番号の若いものから順に左から右に並べた24×8の表があります(表1とします)。 シート2にはいろいろな項目を指定した表があり、B列にランダムに数値が入っています(表2とします)。 表1の範囲に表2のB列の値が入っている場合、表2のA列に◎や*などのなんらかのしるしをしたいのですが、どのような関数を使用すればよいでしょうか? わかりにくい文章で申し訳ありませんが、よろしくお願いいたします。

  • Excel VLOOKUPで複数の関数

    どなたかわかる方教えて下さい!! わかりにくい説明かと思いますが、よろしくお願い致します。 Aシートにコードが入力されています。 Bシートにコード、文字列、数値が入力されています。 AシートのコードでVLOOKUPを使い、Bシートから数値を呼ぶことはできるのですが、 数値が空白の場合は、空白にする。B列の文字も検索したい場合はどのようにすればよろしいでしょうか? 例 Aシートには、コード001が入っています。 Bシートから、コード001、「あ」の行を検索し、数値をもってきて、空白の場合は空白にしたいです。     A列   B列   C列   D列 1行  001   あ   10   空白 2行  001   い   20   30 3行  002   あ   30   空白

  • エクセルの関数についての質問です

    エクセルの関数についての質問です 独学でエクセルを勉強しておりますが以下のような表の中から該当する値を返すことは可能でしょうか。 方法はどのようなものでもアドバイスをいただければトライしてみようと思います。 以下のような元データの中から、行の条件と列の条件を満たすセルに表示されている値(%)を 表示させる関数。そもそも関数での解決は不可能かもしれませんが、もし方法があれば ご教示お願いします。       0000~1000  1001~2000  2001~3000 000~100    5%      5%      4% 101~200    4%      4%      3% 201~300    3%      2%      1% 行と列の値を入力するとその交差した値が表示させたい。 例)行の検索したい数値を110、列の検索したい数値を1200と指定した場合、表示させたい数値は"4%"。 ぜひぜひよろしくお願いいたします。

  • エクセルの関数に詳しい方教えてください。

    月の利用料の算定表を作っています。 一部、関数の使用方法がわからない箇所があり、困っています。 わかる方教えてください。よろしくお願いします。 シート1は算定表、シート2は単価表です。 シート1に単価を表示させたいセルがあります。 シート2には列に区分1~5、行には4月~3月の月が入力されている、区分と月に応じた金額(単価)がわかる表を作成しました。 シート1上にシート2に対応する、区分コード(行数)と月コード(列数)を作成して、OFFSET関数を使用して検索したのですが、うまく表示できません。 私としては、 シート1のあるセルに、シート1に入力した区分コードと月コードに対応する、シート2の金額を表示させたいのですが… 使用方法が間違っているのでしょうか? そもそも、使用した関数が間違っているのでしょうか? もしくは、他の関数と組み合わせ使用すればいいのでしょうか? 説明が下手ですみません。こんな内容でも、わかったよ!という方がいらっしゃいましたら、お願いします。

  • エクセルの関数で

    また皆様のお知恵を拝借したく 先週に数値の大きい順番に項目を並べたいという質問をさせていただきましたが、そこに条件を付け足して、同じように求めたいのです。 シート1には A列     B列      C列 1801  りんご    500 1801  みかん    350 1801  なし     700      ・      ・ 1802  みかん    250 1802  ぶどう    600 ・ ・ 1812  かき     1000 B列、C列は以下に項目と数字が並んでいきます。 A列は年月が入ります。 月の入力は毎月20項目程度になります。 そしてシート2のD列1行目から5行目に1801における上位金額の5項目         E列1行目から5行目に1802における上位金額の5項目               ・               ・             O列1行目から5行目に1812における上位5項目 というように取り込みたいのです。 集計シートに関数を入れて自動的に上位項目を表示させるにはどのような関 数を使えばよろしいのでしょうか。 入力されていない場合は表示はしないような形で行いたいのです。 よろしくお願いします。

  • エクセル関数の自動表示について

    自動表示についてご質問いたします。 シート1 (3月入力時)       A列  B列  C列  D列  E列  F列  G列  H列 1行目  1月   2  10  11  12  30  31  33 2行目  2月   1   2   5   8   9  10  48 3行目  3月   3   5  10  11  30  31  32 4行目  4月   こういうシート1の表があったとします。 シート1で3月入力した時点で、シート2では以下の表があったとします。        A列  B列  C列  D列  E列  F列  G列   1行目    3   5  10  11  30  31  32 と、自動で表示され。 4月(シート1)に数値を入力すれば、シート2の数値が最新数値に自動で入れ替わる・・・と、いう関数を作りたいのですが、いい関数ありますでしょうか? この場合、シート1ではB列~H列の数字の個数は固定(今回は7個)であり、毎回ランダムで数字が入力されていきます。 これをシート2の1行目、A列~G列に最新数値を毎回反映させて、表示したいのです。 どなたか、ご存知の方よろしくお願いします^^;

  • 関数 or マクロ(エクセル)

    行の項目と列の項目を検索して重なる部分のデータを拾いたいのですがどうもうまくいきません。初歩的なことかもしれませんが、VLOOKUPとHLOOKUP関数をあわせたようなもの。LOOKUPウィザードでもやってみるのですがうまくいかないのでよろしくお願いします。(最終的にVBAでやりたいです) 元のデータは、(Sheet3)にあって(Sheet2)で項目を並べ縦と横の項目に一致するデータを持ってきたいです。 Sheet3にあるデータは、別のブックよりVBAで検索したデータを持ってきています。 また、Sheet1、2ともその都度行数(検索項目数)が変わるので、できればデータシートの行数にあわせて行きたいのですが・・・こうなるとVBAになると思い挑戦しているのですがこれがまたうまくいきません。 で、データの行数にあわせて拾い出し、A列で最終行を検索して、L列~W列の各列の3行目に、5行目~最終行までの合計を取ろうと思っています。 説明が下手ですみませんが、よろしくお願いします。 環境:Win2000、98 Office2000です。

  • エクセル 関数 別シートへの抽出

    エクセル関数について質問します。 「数値の入ったセルだけを、その行ごと丸々別シートに抽出する方法」 について教えてください。 例、C列に空白セルと1、2や3など、数値の入ったセルがあります。空白セル以外の数値の入ったセルを、その行ごと別シートに抽出したい。 C3とC5に数値が入ってる→3行目と5行目を別シートに抽出する。 このようなことは関数でできるのでしょうか? マクロでないと無理でしょうか? お力をお貸しください。 よろしくお願いします。

  • エクセルの関数

      A B C D E F 1 × 8/1 8/2 8/3 8/4 8/5 2 ○ 3 4 3 4 5 3 △ 0 1 4 3 2 4 ■ 6 0 2 1 2 5 □ 5 3 2 1 1 6 ● 3 4 2 1 2 上記の表がSheet1にあり sheet2 に ○の8/3の数値を抽出する関数がわかりません。 =SUMIF(Sheet1!A1:Sheet1!A6,"○",Sheet1!D1:Sheet1!D6) で抽出できるものの、日付が変わったとき対応が全く出来なくて行き詰ってしまいました。行、列ともに条件が必要だと思うのですが、どなたか教えて頂けると助かります。