2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excel加工をしてくれるコードをChatGPTに書かせてみた。

Last updated at Posted at 2023-09-21

ChatGPTを使ってExcel自動加工のコードを書かせてみた。

どこにでも共通する課題としてExcel加工があると思います。もう切っても
切れない縁と言っていいでしょう。当然私が所属している部署にもあります。
色々なパターンがあり、今回の案件だけではありません、もっとたくさん
あります。


今回取組んだのは、物流の平準化に合わせた対策に端を発しています。
物流の2024年問題対応として、波動を吸収し毎日納品する物量を平準化
させようという取組の一環です。その為に事実の可視化というところで
素データを元に他のマスターデータと紐付けて曜日別数量や納品リードタイム
別数量をExcelで加工し集計表を作成するというものです。この一連の作業を
ChatGPTに聞きながらPythonでコードを組みました。


ノーコードで完成させたかったのですが、やはり複雑なExcel加工となると
やはりプログラミング言語が必要。ExcelVBAという手法もあるのですが、
より汎用性の高いPythonでコーディングしました。(少し知識もあったし)

最終アウトプットがこれ

WS000022.JPG
WS000023.JPG
数値が出せなくて申し訳ないです。
自動加工されたものが新しいExcelワークシートに抽出されました。

取組んだフロー

基本的にpandasを使っています。pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供しているライブラリです。ExcelファイルやCSVファイルも読み取ります。

  1. 所定のフォルダより必要なCSVファイルを全て抽出する。
  2. 抽出したCSVファイルを合体させる。(縦方向に)
  3. 日付が文字列となっているので日付型に変換する。
  4. "部門マスタ"、"取引先マスタ"データをmergeする。(Excelで言うところのVLOOKUP関数)
  5. 新たな列を追加する。(ある列からある列を引いた数字を表示させる列)
  6. pivot_table関数を用いて画面上に表示させる。(Excelのpivot_table関数と機能は同じ)
  7. 出来たものを新規Excelワークシートにアウトプットさせる。
    image.png
    この間わずか1分以内。もしこれをExcel加工で作っていたら、どんなに作業に
    慣れていても数十分。mergeが出来なければ1日かかっても終わらないでしょう。

ではフローを順に追ってみます。

1.所定のフォルダより必要なCSVファイルを全て抽出
2. 抽出したCSVファイルを合体させる。(縦方向に)
下記がそのコードになりますが、私が入力したのは"import pandas as pd" の部分だけ。
(せっかく勉強したのに記憶が全て飛んで行ったー)
後は、全てChatGPTが書いたコードです。それをそのまんまコピペしただけ・・・。!
WS000014.JPG
3. 日付が文字列となっているので日付型に変換する。
4. "部門マスタ"、"取引先マスタ"データをmergeする。(Excelで言うところのVLOOKUP関数)
5. 新たな列を追加する。(ある列からある列を引いた数字を表示させる列)

Pythonに限らずプログラミングで大事な事は、変数の定義です。
これは実際にコードを書いみて失敗しないと理解出来ません。

WS000015.JPG
Excel加工する際に、余計なデータもたくさんあるので必要な列を残して新しいデータ
フレームを作るのはどうしたらいいかChatGPT先生に素直に聞きました。
全部は映せてないですが、言われた通りにコーディングしました。
WS000016.JPG

pandasでは、Excelのようにオートフィルターで抽出したデータだけが、そのまま
ワークシート上に残っているという事はありません。オートフィルターで抽出した
データを別のデータフレーム名で定義する事が必要になります。

6. pivot_table関数を用いて画面上に表示させる。(Excelのpivot_table関数と機能は同じ)
納品リードタイム別に数量が表示されています。(画面上は何も見えませんが・・・)
WS000017.JPG
上の表は完成フローですが、その過程でエラーが出ました。そんな時こそChatGPTの
出番です。エラー内容を丸ごとコピペして下記図のように、”エラー内容と対策を教えて”
と丸投げすればいいのです。
余談
今はChatGPTがあるからいいが、少し前ならどれだけエラーに震え上がったか・・・。
その度に当てのないネットサーフィンに出て答えを求めに・・・。
WS000019.JPG
もう一つのデータフレームも画面上で表示されました。
WS000020.JPG

最後に

ChatGPTの存在は世の中に知れ渡る前から、エンジニアをしている息子たちから名前
は聞いていた。その時は「ふーん」と聞き流したが、まさかここまでのものとは思わず
知れば知るほどその秘められた可能性に恐怖しました。これはこれからも世の中を席巻し
これまでの常識を覆す力があると思います。今はとにかくその力を最大限使っていこう
と思う所存です。

余談
上記の取り組みによって大幅に時間が浮いた分に関しては、本取組み以外にも色々とExcel
書式のPythonコード組みを実施しました。しかし今のところ、私個人としての業務効率と
なってしまっているところに大きな課題がある。そこが改善されてこその組織としての効果
です。後、プライベートではmakeで組んで、ChatGPTのモジュールを使い、画像生成して
私自身のInstagramに自動で投稿するというフローを作ってみました。その出来栄えに
自分でも驚きましたが、この力を今後も使わない手はないですね。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?