こんにちは、Webプログラマの篠田です。
事務作業や経理、数値の分析などをされている人にとっては、Microsoft Excelは必須のアプリケーションかと思います。
今日はそんな一般的なアプリケーションであるExcelとWebプログラマの素敵な関係についてお話できればと思います。
素敵な関係といいながら、普通にプログラムを書く業務でExcelを使うことはほぼ皆無と言っていいぐらい使いません。
あって、業務の進捗や社内での情報共有としてスプレットシートを使うぐらいです。
ですが、Excelの機能(関数)を利用することでプログラマの業務を劇的に改善できる場合があります。
そんな便利な方法に関して具体的に紹介していきましょう。
この記事の目次
大量のデータをDBに登録しないといけない場合(従来編)
今回ご紹介するのは、Webアプリケーションを構築するときに必要となるSQLとそれを扱うDB(データベース)アプリケーションを利用するときに役立つ、Excelの使い方になります。
DBは、Webプログラマにとって切っても切り離せない強い結び付きがあるアプリケーションです。
そんなDBに対して大量のデータを初期データとして登録しないといけないというのはサービス開発の中では頻繁におこる業務の1つです。
例えば、都道府県名をDBに登録するという作業があると想定してお話していきましょう。
都道府県名を都道府県テーブルである「pref」テーブルに追記するためのINSERT文としては「INSERT INTO pref(name) VALUE(“北海道”);」というものになるかと思います。
※「pref」はテーブル名、「name」はカラム名とします。
従来の方法であれば下記のような方法が考えられます。
大量の情報を保存するための従来型の方法
(1)1つのINSERT文をコピーして都道府県名だけを変更して登録させる
(2)プログラムを作って登録させる
どれもそれなりに時間がかかってしまいます。
(1)の方法では、数百、数千のデータを登録する場合に、ものすごい時間がかかります。
(2)の方法であれば単発のプロジェクトでしか使わない可能性があるプログラムを作るというのも生産性としてどうかなぁと思います。
そこで、使えるのがMicrosoft Excelです。
バージョンは問いませんのでお手元のExcelを使って上記より簡単にINSERT文を作ってみましょう!
ExcelでどうINSERT文を作るのか?
今回の場合では、事前に都道府県名の一覧が手元にあることが前提となります。
手順
(0)事前に用意しておく都道府県名一覧
(1)Excelのセル「A1」に「INSERT INTO pref(name) VALUE(“」と記述します。
(2)セル「B1」に「北海道」と記述します。
※都道府県名が改行区切りになっていればコピー&ペーストをすると各行に都道府県名が入力されます。
(3)セル「C1」に「”);」と記述します。
(4)次にセル「D1」にExcel関数の「CONCATENATE」を使って「=CONCATENATE(A1,B1,C1)」とします。
(5)最後にセル「A1」とセル「C1」、セル「D1」の内容をExcelのオートフィル機能を使ってコピーします。
(6)あとは、セル「D1」の内容を全てコピーしてSQLとして実行すればOKです。
「CONCATENATE」関数の解説
Excel関数「CONCATENATE」は引数に、連結したいセルを指定して指定したセルすべてを繋げて1つの文字列にするという関数です。
今回は、カラム「name」に該当する都道府県名のみが変化し、それ以外の部分は変わらないという特徴を利用しています。
また、この方法の利点は、件数が多くても同じ内容であればExcelの機能である「オートフィル機能」を使って一気にコピーができる点です。
これにより、1つのSQL文が作れればコピーすることで終わることができるお手軽方法です。
ExcelでINSERT文を作る時の注意点
Excelの特徴として注意しておかないといけないのが、「’(シングルクォーテーション)」の取り扱いです。
セルの1文字目に「’」を記述すると消えてしまうという仕様になっており連結した時も消えたままになります。
その場合は「’’」と「シングルクォーテーション」を2つ連続で書くことで、「CONCATENATE」関数で繋げた時には「’」1つで表示されます。
まとめ
どうでしたでしょうか、これを使えばINSERT文でもUPDATE文でも応用は効きますし、必要に応じてファイル保存をしておくこともできます。
プログラマもExcelの機能を知っていると今以上に効率よく仕事をすすめることができるかもしれませんね。