ChatGPTを使ってExcel自動加工のコードを書かせてみた。
どこにでも共通する課題としてExcel加工があると思います。もう切っても
切れない縁と言っていいでしょう。当然私が所属している部署にもあります。
色々なパターンがあり、今回の案件だけではありません、もっとたくさん
あります。
今回取組んだのは、物流の平準化に合わせた対策に端を発しています。
物流の2024年問題対応として、波動を吸収し毎日納品する物量を平準化
させようという取組の一環です。その為に事実の可視化というところで
素データを元に他のマスターデータと紐付けて曜日別数量や納品リードタイム
別数量をExcelで加工し集計表を作成するというものです。この一連の作業を
ChatGPTに聞きながらPythonでコードを組みました。
ノーコードで完成させたかったのですが、やはり複雑なExcel加工となると
やはりプログラミング言語が必要。ExcelVBAという手法もあるのですが、
より汎用性の高いPythonでコーディングしました。(少し知識もあったし)
最終アウトプットがこれ
数値が出せなくて申し訳ないです。
自動加工されたものが新しいExcelワークシートに抽出されました。
取組んだフロー
基本的にpandasを使っています。pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供しているライブラリです。ExcelファイルやCSVファイルも読み取ります。
- 所定のフォルダより必要なCSVファイルを全て抽出する。
- 抽出したCSVファイルを合体させる。(縦方向に)
- 日付が文字列となっているので日付型に変換する。
- "部門マスタ"、"取引先マスタ"データをmergeする。(Excelで言うところのVLOOKUP関数)
- 新たな列を追加する。(ある列からある列を引いた数字を表示させる列)
- pivot_table関数を用いて画面上に表示させる。(Excelのpivot_table関数と機能は同じ)
- 出来たものを新規Excelワークシートにアウトプットさせる。
この間わずか1分以内。もしこれをExcel加工で作っていたら、どんなに作業に
慣れていても数十分。mergeが出来なければ1日かかっても終わらないでしょう。
ではフローを順に追ってみます。
1.所定のフォルダより必要なCSVファイルを全て抽出
2. 抽出したCSVファイルを合体させる。(縦方向に)
下記がそのコードになりますが、私が入力したのは"import pandas as pd" の部分だけ。
(せっかく勉強したのに記憶が全て飛んで行ったー)
後は、全てChatGPTが書いたコードです。それをそのまんまコピペしただけ・・・。!
3. 日付が文字列となっているので日付型に変換する。
4. "部門マスタ"、"取引先マスタ"データをmergeする。(Excelで言うところのVLOOKUP関数)
5. 新たな列を追加する。(ある列からある列を引いた数字を表示させる列)
Pythonに限らずプログラミングで大事な事は、変数の定義です。
これは実際にコードを書いみて失敗しないと理解出来ません。
Excel加工する際に、余計なデータもたくさんあるので必要な列を残して新しいデータ
フレームを作るのはどうしたらいいかChatGPT先生に素直に聞きました。
全部は映せてないですが、言われた通りにコーディングしました。
pandasでは、Excelのようにオートフィルターで抽出したデータだけが、そのまま
ワークシート上に残っているという事はありません。オートフィルターで抽出した
データを別のデータフレーム名で定義する事が必要になります。
6. pivot_table関数を用いて画面上に表示させる。(Excelのpivot_table関数と機能は同じ)
納品リードタイム別に数量が表示されています。(画面上は何も見えませんが・・・)
上の表は完成フローですが、その過程でエラーが出ました。そんな時こそChatGPTの
出番です。エラー内容を丸ごとコピペして下記図のように、”エラー内容と対策を教えて”
と丸投げすればいいのです。
余談
今はChatGPTがあるからいいが、少し前ならどれだけエラーに震え上がったか・・・。
その度に当てのないネットサーフィンに出て答えを求めに・・・。
もう一つのデータフレームも画面上で表示されました。
最後に
ChatGPTの存在は世の中に知れ渡る前から、エンジニアをしている息子たちから名前
は聞いていた。その時は「ふーん」と聞き流したが、まさかここまでのものとは思わず
知れば知るほどその秘められた可能性に恐怖しました。これはこれからも世の中を席巻し
これまでの常識を覆す力があると思います。今はとにかくその力を最大限使っていこう
と思う所存です。
余談
上記の取り組みによって大幅に時間が浮いた分に関しては、本取組み以外にも色々とExcel
書式のPythonコード組みを実施しました。しかし今のところ、私個人としての業務効率と
なってしまっているところに大きな課題がある。そこが改善されてこその組織としての効果
です。後、プライベートではmakeで組んで、ChatGPTのモジュールを使い、画像生成して
私自身のInstagramに自動で投稿するというフローを作ってみました。その出来栄えに
自分でも驚きましたが、この力を今後も使わない手はないですね。