その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日は金宏和實さんの『 Copilot×Excel×Python最速仕事術 』です。

【はじめに】

 Excelの新しい時代が始まりました。1980年代に登場し、当初はApple社のMacintoshパソコン向けに開発された表計算ソフトのExcelは、Windowsの誕生とともにWindowsにも対応していきました。

 GUIがまだ一般的でなかったころに、Excelは「すごいソフトがあるぞ」とプログラマーやパソコン好きの注目を一身に浴びました。それからのExcelは高度な関数やグラフ機能を充実させ、VBA(Visual Basic for Application)というプログラミング環境まで搭載しました。それもマクロの記録を使って、自分がExcelに対して行った操作をVBAのコードとして記録する機能まで用意して、プログラミングの自動化という将来を垣間見せてくれたものです。

 「パソコン使える」がイコール「Excel使える」だった時代はかなり長く続きました。しかし時代は進み、インターネットがパソコンとクラウドと呼ばれるサーバー群を光の速度で結ぶようになり、パソコンによるデータ分析、機械学習、AI活用が日常的なものになってきました。そして、そうした先進的な分野で現在広く利用されているプログラミング言語はPythonです。

 そんな中、2024年の秋にPython in Excelが正式にリリースされました。Excel上でPythonが利用可能になったわけです。その仕組みを簡単に説明すると、Excelのセルに入力したPythonのコードがインターネットを介してMicrosoftのクラウドに送られ、クラウド上のPython実行環境であるAnacondaで実行されて、処理結果がExcelに返されます。

 AnacondaにはPythonで定評のある、データ分析やデータ可視化のライブラリがインストールされているので、Excelのシート上のデータをクラウドで処理・分析、さらにその結果を表現豊かに可視化した結果をExcelで表示することができるようになりました。無償で利用できるWeb版ではなく、有償のアプリケーション版Microsoft 365が必要ですが、PythonがExcel上で使えることにより、Excelを使ったデータ処理は確実に進化したと言えるでしょう。

 ExcelでPythonを使うという“新しい時代”が来たわけですが、これまでもPythonでExcelを操作する方法はいくつかありました。2019年に発行した私の著書『Excel×Python最速仕事術』以降、一連の「Excel×Python」シリーズ本では、openpyxlというPythonのライブラリを使ってExcelブックを処理する方法を紹介してきました。たとえば、複数のブックに入力されている伝票データを順に読み込み、一覧表にまとめ、集計する方法です。また複数のブックに入力されている検査データからグラフを作成し、シートに貼り付けるようなコードも紹介しました。

 このように少し振り返ってみただけで、Excelデータを何で、どのように扱うかには、今やいろいろな方法があります。たとえばExcelシート上のデータからグラフを作成する方法と考えると、3種類があります。Excel単体でも、グラフの挿入機能でシート上のデータ範囲を指定してグラフを作成することができます。それから、Python in Excel(本書の第1部で取り上げています)では、クラウドのAnaconda上にインストールされているmatplotlibやseabornというデータ可視化ライブラリを使ってグラフを描画してExcelのシートに返すことができます。openpyxlライブラリ(第2部で取り上げています)でも、Excelシート上のデータを読み込みmatplotlibに渡してグラフを作成することができます。

 より少ないステップで効率的に作成できて、結果に説得力のある方法がベストでしょう。プログラミングの場合、コードが20行必要な方法より、2行で済む方法が効率的だと言えます。行数が少ないと入力が楽なだけでなく間違う可能性も少ないからです。Excelそのものの操作だと手数というか結果を出すまでのステップ数、つまり操作のためにクリックする数と比較すべきでしょう。グラフだったら、結果については補足説明の必要がなく、おのずと見る人に大事なポイントが何かを訴えかけてくるグラフを作れる方法が良いでしょう。このようにExcelデータやExcelを扱うのにさまざまな方法が選べるようになったのに合わせて、本書では三部構成で最新の活用法を紹介しています。まず第1部では、高度なデータ分析をできるだけ手間なく行う方法を紹介しながら、ExcelとPython in Excelで同じグラフを作成して比較してみます。

 第2部では、個別の見積データから、見積や受注一覧を作るといった、手作業だったらひたすらクリックし続けなくてはならないようなデータ処理を、プログラムで高速に片付けるやり方を紹介します。

 第3部では、やはりPythonのPyWin32ライブラリを使ってExcelを操作します。PyWin32を使うとExcelのデータではなく、PythonからマリオネットのようにExcelそのものを操作することができます。「Excelだったらあのタブにある、あのボタンをクリックすればできるのに……」といった処理を、自分でゼロからプログラミングする必要はありません。PythonプログラムでExcelデータを処理する場合でも、途中でExcelの機能をちょっと使いたいといったときに、PyWin32ライブラリが強力な助っ人になります。

 でも、そもそもPythonとExcelを組み合わせて使うといっても、そのメリットはどこにあるのか?と疑問に思っていた人はいませんか?Excelは便利なソフトですが、基本的に自分でマウスもしくはキーボードを操作して扱います。手動操作が基本なのです。プログラミングを組み合わせることで、Excelで手動操作でしかできないこと自動処理できるようになります。本書を通じて、プログラムで自動化する様子をご紹介していきたいと思います。

 プログラミングであれば、プログラミングできる環境を用意しなければならないと思う人もいるでしょう。本書では、必ずしもプログラミング環境を作る必要はありません。そこで、本書が第1部から第3部で取り上げるプログラミング手法を、Python環境をどのように用意してどのように使うか、Excel単体で使う場合と比較できるようまとめました。

画像のクリックで拡大表示

 Excelユーザーにとっては、2025年の春にも大きな変革がありました。Copilotとの融合です。Microsoft 365のExcelではCopilot in Excel with Pythonが利用可能になりました。Copilot in Excel with Pythonはデータ分析用のPythonのコードを自動的に作成してくれる生成AIです。プログラミングに自信がなくても、Copilotの力を借りてPython in Excelを使っていくことができます。

 本書はバリバリとプログラミングをしている方を対象にはしていません。一般のビジネス現場で働いていて、データ分析やデータ処理の自動化をしたいと思っている方、もしくは、そういった分析や処理をしなくてはいけなくなったビジネスパーソンを対象としています。前提条件としてExcelはそこそこ使えた方が良いです。プログラミングとPythonについては入門レベルの知識があれば良いのですが、そうでない場合は本書のカバーに掲載した拙書をいずれか1冊、参考にしていただけるとGoodです。そんなビジネスパーソンの方に適材適所で必要なツールを選択して、データ分析やデータ処理の自動化ができるようになっていただくことが本書の目的です。

 ExcelはPythonとともに使う新しい時代になりました。AIも助けてくれます。Python in Excelが作成してくれるサンプルコードやCopilot in Excel with Pythonが生成してくれるコードを参考に勉強していきましょう。

 AIとの付き合い方についても触れておきましょう。みなさんは日常的にAIを使っていますか?

 「こんな初歩的なことを聞いたら恥ずかしい」とか「同じことを何度も聞いたら申し訳ない」といった気遣いをしなくても良いのは、AIがプログラミングを始めとする入門学習の支援に適しているところですが、AIは答えるたびに違う答えを出すことがあります。もちろん、人間同様に間違うこともあります。ですから「なんか怪しいな」と感じる嗅覚が必要です。

 AIが示したプログラムコードが妥当かどうか判断するにはプログラミング言語についてのある程度の知識が必要ですし、利用しているAIの特性を理解する必要もありますね。本書の主人公であるやす子さんも、自分で学んだプログラミング知識だけでは不安があるため、AIを頼りにPythonのプログラムを学んでいきます。

 本書では実際の業務に即して、つまりExcelやExcelデータを使ったデータ分析やデータ処理が求められる現場で、どのようにPythonや生成AIを使ったプログラミングが役に立つのかを見ていきたいと思います。そこで、ある小さな商社を舞台に何が要求され、それをどのように解決するかを実話仕立てで説明していくことにしました。

 そこに登場する「やす子さん」は、上司に突然Excelでデータ分析やデータ処理をするように指示され、「何から学んだらいいの?」と右往左往しています。もちろん、自分でもそういうスキルを身に付けられればと思っていますが、どうすればいいのか困っています。それって、あなた自身にも当てはまりませんか?そう、やす子さんは皆さんの代弁者なのです。

 では、本書に登場してくれるキャラクターをご紹介して、Copilot×Excel×Pythonの世界へ踏み出しましょう!

【本書の登場人物を紹介します】

 シマーズ商会総務部経理課のやす子さんは、社長から突然、「これからは君にExcelに入っている業務データの分析をしてもらう」と告げられ、虎ノ門AI相談所というサイトのアカウントとパスワード渡されました。

 やす子さんのIT関係のキャリアというと、Excelは人に使い方を教えることができる程度には習熟しています。Pythonのプログラミングについても、社会人になってからコツコツと勉強を続けてきました。数年前には『Excel×Python最速仕事術』という本を参考に、社内にたまったExcelデータを効率良く処理するプログラムを作り、社長表彰で金一封をもらったことがあります。封筒を開けたら、3000円しか入っていなくて「今どき小学生のお年玉でもこんな金額ないわ!」と、給湯室でひそかに小さな声で悪態をついたことは内緒です。

 そのとき、やす子さんは少し調子にのっていました。社長に頼んで「Pythonによるデータ分析入門」という講座を受けさせてもらいました。たしか3回で50000円ほどの講座だったはずです。

 でも講師の人が「NumPy、Pandas、Matplotlib の順に勉強しましょう」と、NumPy(Numerical Python)の配列や関数の説明を始めたとたん、やす子さんは高校のときに数学が苦手で進路を私立文系に切り替えたことを思い出しました。講座は2回目までは受講したのですが、ノートにパンダの絵ばかり描いていました。3 回目はサボりました。

 だから、社長に「ExcelでPythonが使えるようになったから、データ分析なんて簡単だろう」と言われたときは「ヤバい、見透かされていたかも」と感じ、背中に冷や汗が……。それをごまかすためにも「はいー」と脊髄反射してしまったわけです。

 そんなやす子さんはもはや背水の陣と心に決め、虎ノ門AI 相談所というサイトのチャットBotに自分の疑問をストレートにぶつけ、PythonとExcel の効率的な使い方、pandasライブラリやグラフ化について学んで行きます。

(イラスト:柏原昇店)
(イラスト:柏原昇店)

【目次】

画像のクリックで拡大表示
画像のクリックで拡大表示
画像のクリックで拡大表示
画像のクリックで拡大表示