Excel関数で学ぶプログラミング入門

2021年5月10日 2023年11月8日
カテゴリ: プログラミング
プログラミング教育 Excel

はじめに

Excel関数はプログラミングの基礎を学ぶのにちょうどいい、と個人的に考えています。
理由としては、Excel関数では四則演算・文字列・変数・関数・条件分岐について学べるからです。

もちろんそれだけでは本格的なプログラミングはできませんが、基礎を学ぶという意味ではとても適していると思います。

そもそもExcelとは

PCを触ったことがある人ならWordやExcelといったオフィスソフトはある程度使用したことがあるかと思います。
Excelとは表計算用のソフトで家計簿や統計データの計算、計算を伴わない文書など幅広く利用されています。

Excelの特徴としてはセルと呼ばれるマスが無数に並んでいて、その一つ一つにデータを入力し計算等ができるということです。
また、セルを方眼紙のようにして文書を作成することもよくあります。(その是非については割愛します)

Excel関数とは

Excel関数とは、Excelを用いて様々な計算や文字列の処理を行うための仕組みで、使い方は次の通りです。

まずはセルを選択し半角でイコール(=)を入力します。

その状態で数式を入力していきます。

Enterを押すと数式を入力したセルに計算結果が表示されます。
入力した数式は数式バーに表示されます。

プログラミングでは基本的に半角英数を使用します。
Excel関数では全角で入力しても自動的に半角に直してくれますが、慣れるためにも半角入力を心がけましょう。

四則演算

四則演算とは、足す(+)・引く(-)・掛ける(×)・割るの(÷)4つの計算のことですがプログラミング言語でこれらの計算をする場合、ほぼ共通して次のようなルールがあります。

四則演算に使用する記号(演算子)は次のものを使用する

計算 記号
足す +
引く -
掛ける *
割る /

掛けると割るの記号に注意

計算の優先順位はカッコの中→掛ける・割る→足す・引くの順

これらはExcel関数でも同じです。
算数や数学の計算とほとんど変わりませんよね。

では、Excel関数で四則演算をしてみましょう。

セルに「=1+2」と入力すると

「3」になりますね。

たったこれだけです。
簡単ですよね?

文字列

文字列とは、その名の通り文字の列のことです。
Excel関数では次のようなルールがあります。

  1. 文字列はダブルクオート(")で囲む
  2. 文字列同士の結合はアンパサンド(&)を使用する

セルに「="猫が好き"」と入力すると

こうなります。

これだけだとわざわざExcel関数を使用する必要はありません。
セルに「猫が好き」と入力すればいいだけですから。

Excel関数の文字列入力はほかの計算と組み合わせるときに真価を発揮します。
セルに「="このお菓子は" & 10*5 & "円です。"」と入力してみましょう。

こうなりますね。

変数

変数とは、とてもざっくりいうと名前を付けたデータのことです。
プログラミングでは、計算した値などを一時的にデータに保存してそれを別のところで使うということがよくあります。

算数で表すならこんな感じでしょうか。
1 + 3 = 4 … (a)
5 * 6 = 30 … (b)
a + b = 34

上記の例では1つ目の計算をa、2つ目の計算をbとおいて、3つ目の計算でそれぞれを足しています。

Excel関数では変数なんてありませんが、とっても似た概念のものがあります。
それはセルです。

Excel関数では他のセルのデータを参照することができます。
つまり、計算したデータを他のセルで使用することができるのです。

セルにイコール(=)を入力した状態で、適当なセルをクリックすると

こうなりますね。

Enterを押すとこうなります。

このA1というのはセルのアドレスです。
この例ではセルをクリックして選択しましたが、このアドレスを直接入力することもできます。
※セルのアドレスは文字列ではないのでダブルクオート(")で囲まないように注意しましょう。

もちろんセル同士の計算もできます。
A1とA2のセルに文字を入力した状態で適当なセルに「=A1&A2」と入力すると

こうなります。

関数

関数といえば、中学校の数学で習いますよね。
こんな感じの。
y = ax + b

aとbは定数で、変数xに値を入れるとyが求まるというやつですね。
ざっくりいうと「ある値を入れると、それに応じた値が出てくるもの」が関数だといえます。

プログラミングにおける関数もそんな感じです。

たとえば、Excel関数には複数の数値の平均値を求めるAVERAGE関数があります。
セルに「=AVERAGE(10,50)」と入力すると

こうなります。

これはAVERAGE関数に10と50という数値を入れて、その平均値がセルに表示されています。
関数の中に入れる数字のことを引数(ひきすう)といいます。
関数から出てくる値のことを戻り値(もどりち)返り値(かえりち)といいます。

また、関数の中に引数を入れることを渡すと表現したりします。
関数が戻り値を出すことを戻す返すと表現したりします。

条件分岐

ある条件に応じて実行する処理を分けるということをプログラミングではよく使います。
たとえば、入力した数値が特定の値を超えるかどうかで表示するメッセージを変えたりできます。

Excel関数にはIF関数というものがあります。
まずはこんな感じで入力します。

メッセージの右のセル(B3)に数式を入れます。
「=IF(B2<=B1,"予算内です","予算オーバーです")」

こうなりますね。

では、見積額の数値(B2)を変えてみましょう。
見積額が予算を超えるとメッセージが変わるのがわかるでしょうか。

ExcelのIF関数は3つの引数を受け取ります。
1つ目は条件文。
2つ目は条件を満たすときの処理。
3つ目は条件を満たさないときの処理。

条件文では「B2<=B1」としましたが、これは「B2の値がB1以下であるとき」という条件になります。
「<=」の記号は「≦」と同じ意味です。

条件を満たすときの処理と条件を満たさないときの処理はそれぞれ文字列を表示させていますが、IF関数でさらに細かく分岐させることもできます。
セルB3の数式をちょっと変えてみましょう。
「=IF(B2<=B1,IF(B2<=B1*0.8,"予算内です","予算内だけどちょっと高い!"),"予算オーバーです")」

こうすることで、「見積額は予算内だけど予算の8割を超える場合」は別のメッセージが表示されるようになりました。

ただ、ちょっと読みづらいですよねコレ。
そんな場合は数式バーの中で改行インデントを付けることで多少は読みやすくなるかと思います。
(改行はAlt+Enter)

Excel関数の欠点としては、複雑な処理にするほど読みやすさ(可読性)が壊滅的になってしまうということです。

まとめ

Excel関数を通してなんとなくはプログラミングの雰囲気を掴めたでしょうか。
プログラミング言語ではExcel関数ではできないより複雑な処理もできますが、その基礎となる部分についてはExcel関数で十分に学べるでしょう。

この記事でプログラミングについてちょっと興味がわいてきたという方はぜひプログラミング言語に挑戦してみてください。
初心者の方にはPythonやJavaScriptあたりがおすすめです。
また、Scratchもプログラミングを学ぶにはおすすめできます。

関連の記事

OpenPyXl でチェックボックスを押したい

ExcelVBA で時間が正しく変換されない

Excel のセルに名前を付けよう

ExcelVBAでランダムな文字列を生成する方法