• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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/102)
回答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

専門家に質問してみよう