本連載は実際に業務で役立つプログラムやツールを使って業務の改善に取り組む様子を紹介する物語です。物語はフィクションですが、作中で紹介するプログラムは実際に使えるものです。係長となった主人公の田中君が後輩の葵お嬢さんと一緒に業務課題に取り組みます。
(物語) 懇親会の料理アンケートをExcelで作ろう
その日、朝礼の後で、僕(田中)は呼び出された。呼び出したのは、爽やかな笑顔が特徴の沢谷支店長だ。
「田中君、さっそくこの支店でも大活躍だね。ご苦労様。新しい風が入ってきたことで、みんなの士気が上がって今期の売り上げが楽しみだよ。」
支店への異動前には社長に褒められるし、異動後には支店長に褒められるし、最近良いことばかりだ。
「それで、田中君。君と新入社員の歓迎会を催したいと思っているんだけど、簡単な軽食をオーダーしてくれないかな?ただ、みんな食にはうるさいから社内アンケートを採ってくれないかな?」</b
僕は「分かりました!すぐにアンケート作って送ります。」と元気よく挨拶して部署に戻った。ところが経理部ではトラブルが起きていた。
「係長、大変です。先日提出した見積もり書の数字が合わないって苦情が来ています!」
それは大変だ。仕方ない。アンケートの件は、社長令嬢の葵お嬢さんにやってもらうことにした。ひとしきりお願いをした後、僕は慌てて見積もり書のチェックに入った。
ちなみに、「アンケート作るなんて、ダルい。」と言いつつも、葵お嬢さん、アンケート作りには積極的に見えた。
テキパキと近隣でテイクアウトできるお店をリストアップし、Excelのアンケートひな形を完成させた。しかも、入力規則を使って候補の料理をドロップダウンで選択できるようにしてあり文句ない出来だ。そして、支店の社員宛てにメールを出してくれた。彼女は口は悪いが優秀だ。
(物語) Power AutomateでExcelアンケートを集計しよう
こうして社員みんなにアンケートを採った翌日、当然、アンケートの後には集計作業が必要だ。僕がやっても良いけど、葵お嬢さんにやってもらおう。
「葵さん、今日のお昼までにアンケートの集計もお願い。今後も、Excelのアンケート集計する機会も多くあると思うから、Power Automateを使って自動で集計するようにしてみて。」
Power Automateを使えば、集計対象のExcelファイルが100個あったとしても、自動処理してくれるのでとても便利だ。今後に備えて覚えてもらうのも悪くないと思ったのだ。
しかし、彼女は僕の説明を聞いても「えー、嫌。社員人数くらいのアンケート、私、自分で数える。」と答えるのだった。
「いやいや、せっかくだから、やってみようね。特別にケーキを差し入れするから。」と、嫌がる彼女に何とかやってもらおうと、いろいろ作戦を考えるのだった。
ところが、ケーキと聞くと、彼女はすっかりやる気になったのだった。そして、あっという間に集計ツールを作り上げ、アンケートを集計したのだった。それなりに、いろいろ調べないとできない気がするのだが、意外とすんなり作り上げてしまった。ケーキの力が偉大だと分かったのだった。
実際にアンケート集計ツールを作ってみよう
さて、物語の中で葵お嬢さんが作った集計ツールを実際に作ってみましょう。まず、Excelファイルから作ってみましょう。Excelで選択候補をドロップダウンから選べるようにしてみましょう。
まずは、Excelシートに、選択候補の一覧を書き込んでおきます。そして、候補を表示したいセルを選択します。それから、画面上部のリボンの「データ」タブから「入力規則を」選びます。
そして、設定画面が出たら、許可の部分に「リスト」を指定して、元の値に選択候補となるセルの範囲を指定します。そして「OK」ボタンを押します。この選択候補を表示する機能はとても便利なので、積極的に活用したい機能です。
続いて、Power Automateを使ってExcelアンケートを集計するフローを作ってみましょう。Power Automateについては、本連載で何度も取り上げています。詳しくは、16回目を参考にしてください。
Excelのアンケートですが、シートの「B3」に回答(料理名)が記入されているという設定で作ってみます。もし、サンプルを用意するのが面倒でしたら、こちらにアップロードしてありますので自由に利用してください。
今回作ったフローは次のようなものです。こちらにアクション構築用のコードを用意しましたので内容をコピーして、Power Automateのキャンバス上へ貼り付けてみてください。
なお、今回、全Excelファイルのアンケートを読んだ後、票を集計する部分でJavaScriptを使っています。全部Power Automateでも作れるのですが、逆に長くなってしまうので、素直に以下のようなJavaScript(JScript)で集計しました。
// 以下にPower Automateで取り出したデータが自動的に貼り付けられる
var data = "%JoinedText%"
// 票を集計
var list = data.split("\t")
var result = {};
for (var i in list) {
var item = list[i]
if (!result[item]) { result[item] = 0; }
result[item]++;
}
// 結果を文字列に直す
var s = ""
for (var key in result) {
s += key + "=" + result[key] + "\n"
}
WScript.Echo("結果:\n" + s); // Power Automateに戻す
なお、実行すると集計対象のExcelが入ったフォルダを選択するダイアログが表示されます。そこでフォルダを選択すると集計が始まり、その同じフォルダに「結果.txt」というテキストファイルが作成されます。このファイルをメモ帳で開くとアンケート結果が表示されます。
まとめ
以上、Power AutomateでExcelのアンケート集計を行う方法を紹介しました。このように、Power Automateでは不足している機能をスクリプト機能で補うことができるのが魅力の一つとなっています。
とは言え、JavaScriptが分からない人には、ちょっと複雑に感じるかもしれません。そこで、もしスクリプトを使わずに作るとしたら、Excel自体の集計機能を使う手もあるでしょう。この場合、Power Automateで各Excelファイルから取り出したアンケートの答えのデータ一覧を、別の空白のExcelファイルに書き込むようにします。そして、そのファイルでExcelのCOUNTIF関数などを利用して投票数を計算します。このように、アンケートの集計では、いろいろな方法が考えられますので試してみてください。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。