Excelの関数はとても便利です。 ExcelにはVBAマクロという形でプログラミングアプリケーションの開発も可能ですがExcel関数だけを使いこなしても相当本格的なアプリケーションが作れます。
この記事ではプログラミングの入門としてExcel関数を活用したアプリ開発事例をご紹介します。
目次
検索関数(VLOOKUP)で印刷画面付きの住所データベースを作る
まずは、検索関数としてVLOOKUP関数を使って印刷画面つきの住所データベースを作ってみましょう。
下の写真のようにリスト選択した送先、送主の住所や名義が、別シートの印刷画面に自動入力されるアプリケーションとなっております。
完成品はこちらからダウンロードできます。
下準備
まずは下準備として、1シート目にデータベースとしての表を作りましょう。最初の1列目は入力規則を使って「空白、送主、送先」のリストを作っております。
VLOOKUP関数でデータ項目の検索表示を実装
それではVLOOKUP関数を使ってみましょう。まずは送先住所にVLOOKUP関数を施します。引数(関数におけるカッコの中に入れる値)は次の順番となっております。
- 1:検索する文字列です。今回は"送先"と選択された項目を探すので”送先”と入力します。注意点として文字列の場合は""の間に挟む必要があります。
- 2:検索して値を表示する範囲です。ここではデータベースシートの全範囲として「データベース!A1:D9」と指定します。
- 3:検索する文字列がヒットする行の何列目を表示させるかを指定します。今回は住所であるので4列目を指定します。
- 4:検索条件ですTRUEの場合は部分一致、FALSEの場合は完全一致です。今回は完全一致の為FALSEです。
入力完了すると、次のようにデータベースシートで「送主」と選択した住所が表示されます。
続いて、送先の宛名を入力しましょう。ここでポイントとして、名前の後ろに「 様」をつける必要があります。この場合は、関数のあとに&をつけることで文字列を結合することができます。
なおVLOOKUP関数の検索文字列と同様、&で接続する文字列は””で囲う必要があります。
最後は同じ要領で第1引数を「送主」に変更して送り主情報を作成していきます。
ここまでVLOOKUP関数を使うだけでこのようなアプリケーションが作れてしまいました。
条件関数(IF関数)を使いこなしてExcel関数だけで本格的なアプリ開発
続いて条件関数を使って複雑な条件を使って本格的なアプリ開発をしていきます。
今回はサンプルとして以下のようなマインスイーパーアプリを使って解説したいと思います。
つくりとしては左の操作用盤面がリスト方式になっており、〇を選択すると、そのマス が地雷かどうか確認します。地雷ではない場合は周囲に地雷がないかどうかを計算して地雷の個数を出力します。
完成品はこちらからダウンロードできます。
なお完成品は実は地雷の位置が固定になっており、厳密には十分なゲームプレイはできていません。そのため今回のテーマである条件関数IFの使い方に焦点を絞って解説したいと思います。
COUNTIF関数で条件にあう個数を調べる
条件関数IFを使う前に、似た関数として特定の範囲で条件に合う個数を出力するCOINTIF関数を見てみましょう。
第1引数が調べる範囲、第2引数が条件にマッチする文字列となっております。ここでも文字列は""で囲う必要がある点について注意してください。
このマインスイーパーサンプルでは、スコア表示のところに使われており、操作用盤面の〇の個数を計算して表示するようになっています。
条件関数IFを使って場合分けを行う。
それでは見出しにもある条件関数IFの使い方を見ていきましょう。
実はスコアの下の行に右側のステータス盤面で地雷を意味する「●」が表示されているかどうかを確認して、1個以上表示されている場合は「ゲームオーバー」を表示させる処理を施しています。ここでIF関数が登場します。
IF関数は以下の作りとなっております。
- 第1引数が条件式で今回はCOUNTIFで●の数を数えて●が1個以上の時が条件が正(TRUE)となるようにしています。
- 第二引数は条件が正(TRUE)の時に表示する処理です。今回はシンプルに「ゲームオーバー」と表示するようにしています。
- 第三引数は条件が誤り(FALSE)の時に表示する処理です。今回はシンプルに空白にしています。
IF関数で複雑になった場合にインデントをつけて見やすくしてみる
ステータスを表示する盤面のセルの記載を見てみましょう。処理としては操作用盤面に〇がついているとき、ゲーム内データシートでこのセルが地雷かどうか確認します。地雷であれば「●」を返し、それ以外は周囲に地雷があるかどうか、地雷があれば地雷数をカウントして表示するようになっています。
こちらをIF関数で表しましたが、なんだか非常にみづらい形になってしまっています。
この時にインデントをつかって中身を分解するテクニックが役に立ちます。このようにインデントを使って分解していくと処理が見やすくなり、辿っていくことができるようになります。
IF文以外でもこのインデントは活用できます。地雷を作成する部分はAND関数という条件式を使うなど、より複雑な処理となっております。ここでもインデントをつかうことで、複雑な処理が見やすくなります。
インデント記法はプログラミングへの第一歩
このインデントを使った記法はプログラミング言語を書く際にも採用されています。特にPythonは初心者がこの記法を覚えるためにインデント記法を必須にしています。プログラミングを将来的に覚えることを視野にいている人は是非使いこなしてみてください。
公式リファレンスを活用しよう
今回は、VLOOKUP関数とIF関数の2つのみのご紹介でした。この2つだけでもエクセルの使い方に深みをもたせることができるのではないかと思います。
しかしながら、Excel関数はまだまだたくさんあります。
例えば今回検索関数としてVLOOKUP関数を紹介しましたが最新のExcelバージョンを利用できればより使いやすく進化したXLOOKUP関数の利用ができます。
こういった情報を知るには公式ドキュメントの公式リファレンスを眺めていくことが近道です。最新のExcel関数の一覧がカタログ記載されています。。
これらを眺めてみて、時々詰まったときに便利な関数はないかと探していくことでExcelスキルはよりアップしていくと私は考えています。
終わりに
この記事を通じてExcelスキルアップの助けになれば幸いです。最後まで読んでいただきありがとうございました。
Photo by Artem Sapegin on Unsplash