📃

Code InterpreterにExcel関数を書いてもらう方法

2023/08/08に公開

Code InterpreterでExcel作業

Excel(エクセル)は結構好き嫌いが分かれるソフトだと思います。

プログラミングはできるけど、エクセルはあんまり得意じゃないという人も結構いるのではないでしょうか?私もあんまりエクセルは得意ではないです。

Code Interpreterでエクセル仕事がどのくらいできるのか試してみました。

普通にPythonで読み込みと可視化

まずはPythonでの読み込みと可視化です。

試したデータは、以下のような日付とカテゴリと金額の入った、妙に生々しいものです。はい、私が確定申告のためにメモしている経費のデータの一部です。

こんなやけにリアルなデータの月ごとの金額集計やカテゴリごとの金額を可視化(グラフ、表)にしてみます。

プロンプトは以下くらいでOKです。実際のプロンプトの例はこちらです。

アップロードしたエクセルファイルの金額を月毎に集計して棒グラフ化してください
カテゴリごとの金額を棒グラフにしてください
月ごとの集計をマークダウン形式で表示してください

以下のような結果になります。

金額
1月 ¥53,398
2月 ¥23,371
3月 ¥26,678
4月 ¥7,095
5月 ¥11,799
6月 ¥9,134
7月 ¥36,277
8月 ¥27,714
9月 ¥51,468
10月 ¥40,860
11月 ¥34,221
12月 ¥40,339

ちなみに結果はかなり生々しく見えますが、大幅に加工しておりますのでご承知おきを…

コードをみるとPandasとMatplotlibを使っています。ここらへんはCode Interpreterのお手のものですね。

なお、Matplotlibの日本語化は以下の通り最初にjapanize-matplotlibを使っています。

https://twitter.com/karaage0703/status/1679878343037194240

具体的な手順は以下のカレーちゃんさんの記事が参考になります。

https://note.com/currypurin/n/n45ab3a454c52

Code InterpreterにExcel関数を書いてもらう

ここまでは序の口ですね。ここからが本題です。

「仕事のデータ、ネットにアップなんかできるか!Excel関数を使った魔改造エクセルシートを作って欲しいんじゃ!」

という愛のままにわがままな人(?)もいるかもしれませんね。

Code Interpreterはネットの記事によるとExcelの数式(関数)は書けないと書いてあったりしますが、Code Interpreterの実力と自分が把握している仕様から絶対そんなことないだろう(Excel関数書ける)と思っていました。試してみたら、やっぱりできました。ちょっとだけプロンプトに工夫が必要で以下のように書きます。

アップロードしたエクセルファイルの金額を月毎に集計するエクセル関数を作成して、同じシートに埋め込んでください。
エクセルシートを再利用したいので、値でなくエクセル関数を追加して欲しいです。

追加した後は、追加したセルに値が正しく追加されているか自分で読み込んで確認して、間違いがあれば修正してください。

すると、ちゃんと数式を追加したExcelファイルをアップロードしてくれます。

ただ、最初以下のように2月,4月,6月,9月,11月に0が入っていたりしました。

理由はピンときましたが、すっとぼけて以下のようにだけ指摘します。

確認しましたが、2月,4月,6月,9月,11月が0となっていて正しくないようです。

すると、ChatGPTちゃんと気づきます。賢い。

申し訳ございません。ご指摘の通り、30日までしかない月や28日までしかない月について、日付の範囲を正しく指定していませんでした。

2月、4月、6月、9月、11月の日数を考慮して、エクセル関数を修正いたします。

修正後は、Pythonの結果とも一致するので正しそうです。

数式をみるとSUMIFSなるExcel弱者の自分は知りもしないExcel関数が使われていました。

SUMIFS(C2:C148,A2:A148,">=2021-01-01",A2:A148,"<=2021-01-31")

プロンプトのやりとりは以下です。

https://chat.openai.com/share/c5e6be31-a34a-4208-8145-c5ad8d58e645

これなら、例えばアップロードできないデータの場合でも、似たフォーマットでダミーデータを入れたエクセルをアップロードすれば、魔改造神エクセルシートを量産できそうですね。

Code InterpreterでExcelの数式を使うときの注意点

Code InterpreterでExcel関数を書く方法、良さそうですが、今のところの注意点として頻繁に間違えます。今回、6回くらい試しましたが、正しい答えを返してきたのは2回だけでした。Code Interpreterは、あまりExcel関数は得意じゃないようです。

というのも、Code Interpreterは、Excelのセルに関数が入力されたところまでは自分でチェックできるものの、その数式の計算結果の値をチェックするにはExcelが必要なため、Code Interpreterではチェックできないためです。

なので、Excelの数式が多少なりとも使える人であれば、Excelの数式を教えてもらうだけにして、Excelシートは自分で作った方が速いかなと思います。

まとめ

Code InterpreterでExcel関数を書かせる方法を紹介しました。

Excelに慣れている人からするとレベルが低いかもしれませんが、自分のようにExcelに詳しくない(もっというと、特に詳しくなりたくもない)人にとって、自然言語でExcelを操作したり、魔改造Excelを量産できるのは、多少なりとも使い所があるんじゃないかなと思ったりします。

多分、Excelデータを学習した上で、Code InterpreterにExcelを内蔵して、数式の計算結果とPythonの結果を比較して確認できるようにしたら、どんなExcel職人も太刀打ちできない、ハイパー魔改造Excel量産マシンが爆誕すると思うので、是非Microsoftさんには、そんなAIを作ってExcelに内蔵して欲しいですね。

参考リンク

https://acro-engineer.hatenablog.com/entry/2023/08/08/120000

関連記事

https://zenn.dev/karaage0703/articles/90d4de4596b262

Discussion