• ベストアンサー

エクセルの「関数」について

大学2年生。 時々エクセルを使います。 「vlookup」という「関数」があります。あるマスの値と同じものと同じ、特定の範囲にあれば、そのマスから何列か離れたところにあるマスの値を返してくれますが、 ・同じものを探す ・値を返す という事をしてくれますが、「プログラム」とは違うんでしょうか? 「=vlookup」でそこまでしてくれるって、すごく不思議な気がします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Excelの関数は、マイルロソフトの技術者(多分ソフトの技術者の中のエリート)が、プログラムを組んで、 ・「名前(VLOOKUPなどの関数名)を、=に続けて」、 ・シートの「セルに」入力すると、(埋め込む、というようだ) そのプログラム本体(最終は機械語)に飛んで、実行してくれる仕組みです。 ーー ExcelのVBAなどでは、ユーザー関数という仕組みがあり、素人でもVLOOKUPと同じものは作れます(下記)。しかし500ぐらいある関数の中には、理系でない素人には、どうプログラムを組めばよいか、勉強が必要なものもあります。 またプログラム作成は、大筋どう処理するかわかっていても、実際作るとなると面倒なのと,処理スピード的に遅いとか、プログラムにミス(特殊な場合には誤るなど)を含んでいる恐れも多い、エラーチェックが不十分なことも多い、などです。だから既製のエクセルの関数を使うのです。 表計算ソフトでは、VLOOKUPは多用されますが、LOTUS123などのエクセル以前のソフトで取り上げたものが、流れ込んでいるように推測します。どんな関数を用意するかは、意外に伝統で決まるように思います。 プログラムをどういう言語や仕組みで作るかは、好事家でないと知る必要はない。 他にこういう対応関係を使うのは、Dictionaryなどもあります。2者(例 日本語単語=>英語単語)の対対関係を設定して、1方から他方を割り出す仕組みです。 質問者はこういう質問の点に疑問・興味を抱いたのは、優れた性向と思いますが、色んな事項において、基礎を極めないと、疑問を引きずるタイプかもしれないのですが、時間をかけて、勉強するとして、WEB解説記事ぐらいで我慢して、前に進んでください。 == 下記は拙い例ですが、 VLOOKUP関数もどきのユーザー関数。 下記コピーし、標準モジュールに貼り付け。 Function VLOOKUPB(a As Range, b As Range, c) ' MsgBox a For Each cl In b If cl = a Then VLOOKUPB = cl.Offset(0, c) Exit Function End If Next End Function ーー 例データ A2:D6に b 2 a 1 c 3 b 2 e 5 c 3 d 4 e 5 B2の式は =vlookupb(A2,$C$2:$C$6,1) B3,B4に式複写。 結果は上記のB2:B4の通り。 上記はVLOOKUP関数のFALSE型を真似たもので、FALSEに決まっているので、第4引数は無しにしています。

tetsushi_9shu
質問者

お礼

丁寧にありがとうございました。

その他の回答 (3)

noname#246592
noname#246592
回答No.4

vlookup自体がプログラムを組んであると思います。 「サブルーティン名=vlookup」であるわけです。

tetsushi_9shu
質問者

お礼

なるほど。

  • mate0128
  • ベストアンサー率30% (31/103)
回答No.3

プログラムとは違いますね。Excelの1つの機能です。関数には何百も種類があるのであまりなじみのない人には不思議なこともあります。 検索関数の1種でVlookUpは縦の表から、HlookUpは横の表から目的のものを探します。 http://edutainment-fun.com/excel/func/search.html 論理関数と組み合わせると違うセルに文字入力されているときは空白にして、それ以外は答えを表示するようにできますよ。

tetsushi_9shu
質問者

お礼

回答ありがとうございました。

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.1

関数はある値に対し、一定の値を対応させたものです。 コンピュータの世界の「関数」は、小さな「プログラム」となっています。

tetsushi_9shu
質問者

お礼

まそうなんでしょうけど。

関連するQ&A

  • vlookup関数の使い方

    vlookup関数を使って検索する場合、指定された範囲の1列目に特定の値がないとき、#N/Aが返ってきますが、私は1列目に特定の値がない時には数字の0(ゼロ)が返ってくるように四苦八苦しています。なんとかならないでしょうか。

  • エクセルのVLOOKUPについて

    VLOOKUP関数について VLOOKUP関数の使用方法は  VLOOKUP(検索キー、範囲、列数、検索の型) である  多くのWEBの使用例では検索キーで検索するのは「範囲」の第1列であり、  返す列の値は2列以降という例ばかりである。  このとき、検索キーで「範囲」の第2列を検索して、  「範囲」の第1列の値を返すようにできるか、という質問です。 なおエクセルの版数は2000です。 よろしく、お願いします。 以上

  • ExcelのVlookup関数で一致した文字のセルの番地を取得する方法

    ExcelのVlookup関数で一致した文字のセルの番地を取得する方法 プログラム(VBA)で、検索で使用する関数でVlookup関数というのがあるというのが最近知ったのですが、Vlookup関数は、検索するセルの範囲を指定して、検索対象の文字列が一致した場合、そのセルの内容(値)を返すという風に書いてあったのですが、値ではなく、そのセルの番地を取得する方法はあるのでしょうか? ありましたら、その方法を詳しく教えてください。Vlookup関数以外でも検索するコードがあるようですが、Vlookup関数に限った場合でよろしくお願いします。 回答よろしくお願いします。

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

    エクセルのCOUNTIF関数について、というかCOUNTIF関数でよいのかどうかもよく分からないのですが、教えて下さい。 (1)まず、ワークシートのA列の1~100行目までの100マスを範囲として、数値を入力していくときに、仮に同じ数値を入力しようとしても、入力ができないようにしたいのです。 (2)次に、ワークシートのA列とC列のそれぞれ1~100行目までの合計200マスを範囲として、(1)と同じことをしたいのです。(つまりB列はとばして) (1)と(2)のようなことは可能でしょうか? お分かりの方がおられましたら、ぜひよろしくお願いします!

  • Excelの関数について

    エクセルで表を作っているのですが、関数についてひとつ質問です。 VLOOKUPなどの検索関数で、検索値として参照する値にひとつのセルの中の一定の文字列を指定したい場合はどうすればよいのでしょうか? MID関数で抽出しようとしたのですが、どうも関数で抽出した値はエラーが出るようで・・・。どなたかわかる方いらっしゃったら回答お願いします。

  • エクセルの関数を教えてください

    エクセルで範囲内で値もしくは文字列が入っているセルの数を数えたいのですが同じ値、文字列が同じである時はカウントしないようにしたいのですがどのような関数を使えばいいか教えてください。

  • Excel関数を解説して教えて下さい。

    どなたか教えて下さい。 Excelで特定の列の中で一定の範囲が指定されているセルの任意のセルに値を入力し、その範囲の中に入力された最終行 (最下段) の値を取り出すために下記のようにExcelのLookup関数を使用して必要とする値を取り出しています。 =Lookup (10~10,特定の列の最上段のセル:特定の列の最下段のセル) これで間違いなく特定の列で定められた範囲に記載された値の最下段の値を取り出せますが、 10~10と設定する意味と、どうして最下段の値が取り出せるのか、この関数を解説して教えて下さい。 また、この場合の最上段の値を取り出す際の関数も教えて下さるようお願いいたします。

  • EXCELのVLOOKUP関数について

    EXCELのVLOOKUP関数について教えてください。 例えばA1が○でC1が×のとき、その該当行の3列目を示す というような検索値を2つ満たすようなやり方は可能でしょうか? 範囲、列番号とも検索値1つに対応しているのでvlookup関数を並列することになるのでしょうか? 別の簡単な方法があれば教えてください。 わかりにくい質問で申し訳ございません。よろしくお願いします。

  • Excel 関数 一度抽出された値を検索対象から外すには?

    Excel 関数 一度抽出された値を検索対象から外すには? Excelの関数について教えて頂きたいことがあります。例えばある検索範囲があり、vlookupか何かで対象の値を引っ張ってきたいのですが、検索値に対象となる値が複数ある場合、一度抽出された値を検索範囲から外し、次のvlookupではそれ以外の対象となる検索値から値を引っ張る、そしてそのまた次のvlookupでは既に抽出された2つの値を対象から外し検索値を探す、そしてそのまた・・・といったような関数の設定は可能でしょうか? もう少し詳しく状況を説明しますと、日付の"年"と"月"を検索値とし、範囲に該当する値が複数ある時に(仮に検索値を"2010年3月"とし、検索範囲の中に2010年3月1日、2010年3月8日、2010年3月15日を=year()&"/"&month()で表示させた値がある場合)、=vlookup("2010年3月",A:B,2,false)でまず一つ目を抽出し、次のvlookupでの検索の時に一つ目を検索対象から外して再度検索させ、さらに次では一つ目と二つ目を検索対象外として検索させたい、と考えています。 どなたかこのような関数の組み方をご存知の方、教えて頂きたく思います。別にvlookupにはこだわりませんので、近い方法でもいいのでどうぞ宜しくお願いします。

  • Excelの関数について

    VLOOKUP関数では出来ないのでご相談で御座います! 横一列(2:2)で特定文字列を検索し、特定文字列セルの右隣のセルの情報を返したいです。 仮に、2:2行を全て選択して「テスト」という文言がある右隣の1つめ(2つめも可能なら)のセルを返したい場合はどのうような関数でやれば宜しいでしょうか。 Excelマスターの方、ご教授お願い致します。

専門家に質問してみよう