みなさん、おはようございます!タカハシ(@ntakahashi0505)です。
こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!
今回のテーマは、今さら聞いてもいいIT用語 #20: 「関数」 です。
なお、以下で実際にお聴きいただくこともできます!
では、よろしくお願いいたします!
今日紹介する用語は「関数」
今更聞いてもいいIT用語シリーズ、今日紹介するIT用語は「関数」になります。
ビジネスパーソンのみなさん、よくExcel関数とかスプレットシート関数とか、そういったものはよく見かけるんじゃないかなと思います。
ここで関数なんて書かれているので、なんで数学っぽいキーワードが使われているんだろう。
こういう風に思われるかもしれませんが、今日は、その辺り詳しく解説をしていきたいと思います。
数学での「関数」とは
さて、ちょっと関連がありますので、その数学の関数の定義から確認をしておきたいと思います。
調べるとこんな風に書いてあります。
二つの変数x、yがあって、xの値が決まれば、それに伴ってyの値がただ一つ決まる時、yはxの関数であるという
このように説明されているんです。
数学の関数
ちょっと数学ならではの表現なので、いまいち入ってこないという方もいらっしゃるかもしれませんが、こんなイメージをしてください。
ある箱があります。
ある値を入れると、なんかしらか別の値が出てくる。
こんな仕組みなんです。
ただ、その入力する値、これが同じである限り、出力する値、これはいつも同じということです。
ここで言うと、その箱、これが関数ということになります。
数式では、y=f(x)と表します。
このfが関数なんですが、英語で関数はfunction(ファンクション)と言いますので、その頭文字fを取って、これが数式に使われているという話です。
Excel関数・スプレッドシート関数
IT用語でいう関数もこの数学の関数にとても似ているので、関数という言葉がそのまま使われています。
つまり、どういう役割を果たすものが関数と呼ばれているかというと、
- 何らかの値を入力します。
- それを受けて何らかの処理をします。
- そして何らかの値を出力する。
このような機能を関数と言います。
ITの世界でも、この関数、英語で言うとfunctionになります。
Excel関数とかスプレットシート関数、このイメージがすごく当てはまりますよね。
SUM関数
たとえば、よく使われる関数にSUM関数があります。
入力として、セルの範囲、これを与えるんです。
すると、その範囲の中の値の合計値を計算して、その合計値を出力する、このような仕組みです。
ちなみに、この関数に入力するもの、入力値を引数と言います。
時々「いんすう」と読む方がいらっしゃるんですが、そうではなくて、「ひきすう」と読みます。
また、関数から出てくる出力値、これを戻り値なんて言います。
SUM関数の例で言うと、セルの範囲、これが引数となって出力された合計値、これが戻り値となるということです。
この戻り値の値が、関数を含む数式の計算結果として0に表示されているということになります。
TODAY関数
もう1つ別の関数を紹介します。
TODAY関数という関数があります。
これは、その名の通り「今日の日付を返す」関数になります。
戻り値は今日の日付になるんですが、入力値は特に必要ないんです。
このように、関数と言っても引数がないパターンもあります。
プログラミングにおける関数
さて、プログラミングの世界でも関数という概念があります。
根本的にはExcel関数とかスプレットシート関数と同じ考え方になります。
プログラミングで言うと、コンピューターにしてほしい命令、これをコードを使って1行1行書いていくわけです。
これが1つ1つの命令になります。
その命令について一定のまとまりでまとめて、それに名前をつけたもの。
これを関数と言います。
一定の命令のまとまりに名前をつけたもの
1つ例えを紹介したいと思います。
僕は朝起きて必ずコーヒーを毎日入れるということになっているですが、この毎日コーヒーを入れるという僕のルーティンをちょっと毎日やるのめんどくさいし、忙しいので、ロボットにお願いしようということにしました。
手順としては、
- コーヒーメーカーにペーパーフィルターをセットする。
- そしてコーヒーの粉を入れる。もしこの時、コーヒーの粉が残りわずかなのであれば、お知らせをしてくれます。
- 水を汲んで、水をコーヒーメーカーに入れます。
- コーヒーメーカーのボタンを押す。
こういう手順になるんです。
ただ、この手順、1つ1つ指示をすると、4回も5回も命令をしないといけません。
そこで、関数という概念が出てくるわけです。
この一連の命令をひとまとめにして、「コーヒーを淹れる」という名前をつけるんです。
すると、次からはこの「コーヒーを淹れろ」という命令をするだけで、このロボットはペーパーフィルターをセットするところから、コーヒーメーカーのボタンを押すところまでやってくれるということになります。
みんなが何度でも使えるようにする
Excel関数やスプレットシート関数で言うと、この処理はみんながやりたいよねというものがすでに数百個ずつ用意されていて、それを我々は使わせてもらうというのが基本になります。
プログラミングで言うと、この一連の処理、オリジナルで作るということもできるわけです。
もちろん、これはみんな使うよねというものは元々用意されていて、関数として使うことができます。
関数というものの考え方
このように、みんな使うよね、何度も使うよね、そういった一連の処理のまとまり、これをパッケージして名前をつけておく、それでみんなが何度でも使えるようにするというのが関数というものの考え方になります。
オリジナルの関数を作ることができる
ちなみに、ちょっと補足なんですが、Excel関数とかスプレットシート関数、これで言うと、プログラミング言語、VBAもしくはGoogle Apps Script、これを使うことでオリジナルのExcel関数、スプレットシート関数を作ることもできます。
これなんかよく使うなみたいな処理が出てきたら、ぜひオリジナル関数もチャレンジしてみていただければと思います。
ちなみに、Excel関数、スプレットシート関数では引数がない場合もあるとお伝えしたんですが、プログラミングの場合は引数がない場合もありますし、場合によっては処理だけをして戻り値もない、こういった場合もあります。
したがって、数学の場合は、入力、出力、これがあるのが関数の前提なんですが、プログラミングの場合は、一連の処理をまとめて名前をつけたもの、これを関数と言っていいんじゃないかなと思います。
場合に応じて、入力値としての引数がある場合がある、出力値としての戻り値がある場合があるということです。
ちなみに、VBAなんかで言うと、戻りのある場合だけを関数といい、戻り値がない場合は関数と呼ばずにプロシージャと呼ぶということになっています。
ちょっとややこしいんですが、混乱しないように確認しておいていただければと思います。
関数の考え方は仕事全般に応用が利く
この関数の考え方なんですが、一定の処理をまとめて名前をつけておく、それでみんなが何度でも使えるようにする。
こういった考え方は仕事全般で応用が利く考え方だなと思うんです。
たとえば、会議の時に「議事録を書く」というタスクがあるとします。
これ、個々人にやり方お任せというところも多いかもしれないんですが、ただ、チームとしてこういう手順でこういう風にやっておこうとドキュメントとして手順をまとめておくと便利だったりします。
なんかうまく議事録が書けないと思ったら、そのマニュアルを見直すわけです。
そして、テンプレとして、こういうのをテンプレとして使おうみたいな手順を改善することによって、アウトプット出力の質を上げることができます。
そして、そのドキュメント、マニュアルは、そのチームだけではなくて部署全体で見られるようにすると、部署全体のあらゆる会議の議事録の質が上がりますし、あちこちの会議のいろんなフィードバックがきますので、それを受けてブラッシュアップし続けることができます。
このように、関数的な概念を仕事に持ち込むことで、あるタスクを管理しやすくなったりとか、それをいろんなところに展開しやすくなったりとか、そういったメリットがありますので、ぜひみなさん応用してみていただければと思います。
まとめ
はい、ということで今日は今更聞いてもいいIT用語シリーズ「関数」をお送りしました。
タカハシのVoicyの放送はこちらからお聴きいただけます。
チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。 では、また。