仕事でCopilotと格闘の末、ExcelのPower QueryのMコードを自力で作成

2025年の5月ぐらいから、仕事でExcelを使って、社内のソフトウェアライセンスの管理を始めたのだが、月を追うごとに管理するライセンスの数が増えていき、それをExcelの1シートの中で管理していたので、1つのセルの中にif文の複雑なネストになっていて、そのセルの数が50000セルぐらいにまで膨張してしまった。

当然、1つのセルのif文は外部のExcel帳票を参照しに行くので、何かを変更すると、Excelの再計算が走ってしまい、一回再計算が走るとPCのCPUが85%ぐらいExcelの再計算に使われ、それも30分ぐらい続くという地獄の目に遭っていた。

Excelの一つのシートで管理しているのは、社内のwebサーバーに保存するのに、シートを分けて保存することができず、一つのシートをデータとしてサーバーに読み込む必要があるからなのだが、処理時間がかかりすぎて頭を抱えていた。

会社ではAIとしてMicrosoftのCopilotの利用を推奨していたので、CopilotでなんとかExcel処理時間の長さと重さを縮小できる方法はないかと尋ねた。

その結果、ExcelのPower Queryを使えば、軽量化、再計算時間の短縮が図れるとはわかった。しかし、僕はPower Queryについては何も知らない。それでも、Power Queryで作業の軽量化を図るため、Copilotを虐めながらMコードを作成していった。

僕がPower Queryを全く知らないこともあるし、Copilotが間違った回答をしばしばすることもあるからというのもあるが、Copilotの指示通りにPower Queryを操作して、Copilotが生成したMコードをPower Queryに適用しても、延々とエラーが出続けた。

そのエラーを一つ一つ、Copilotに尋ねて原因を探りながら潰していった。なかなかエラーが消えず、原因特定のためのチェックポイントを仕掛けたりもしたが、今日の午後になって、ようやくエラーが消え、Power Queryの計算ができるようになった。

そして、ExcelのTableにPower Queryで生成したリストからソフトウェアライセンスの管理計算表の一部が作成できるようになった。

まだ、全部には手をつけていないし、一部はif文を使ったままにせざるを得ないのだが、明日、明後日ぐらいで12月に作成したデータをPower Queryに置き換えたものは完成しそうなので、その後は1月分のデータに置き換えて、生成することができそうである。

全くPower Queryを知らないのによくCopilotでMコードなんか生成させるなと思うが、僕からしたらCopilotの使い方を社内に広報しないといけない業務もあるので、これが完成したら、PowerPointで説明資料を作成して、Copilotの利用事例を発表するつもりである。

どちらにしても11月12月はExcelが重すぎて再計算が走るごとに30分以上時間を要していた作業が少しは楽になりそうなのが見えてきて、安心し始めている。Copilotも道具なので、どう使うかが鍵だと思う。

コメント

タイトルとURLをコピーしました