毎週月曜日に作る週間会議報告書を【ChatGPT】の助けをかりて作成してみた
小売業で戦略担当をしています。
毎週日曜日の夜になると、少し憂鬱になります。
なぜかと言うと、月曜日の早朝から会議資料作成が待っているから!!
少しでも時短できるようにChatGPTを使って解決できないかな。
1.今更ですがChatGPTとは
早速ChatGPTに聞いてみました。長々と回答いただいたので
箇条書き3つで説明してとお願いした回答です。
- ChatGPTは、OpenAIが開発した対話型の大規模言語モデルです。
- テキスト生成や質問応答など、自然な会話を行うために最適化されています。
- 教育やカスタマーサポートなど、さまざまな分野で利用されています。
対話型なら、色々聞いて解決できそう。
ExcelやPDFデータを読み込んで詳細分析するにはアップグレードが必要かー。
時短になるなら安い投資。今後の事も考えて、すかさずポチッと🖱️完了しました。
アップグレードに関して参考にしたサイト
2.完成した資料
まずは完成した資料です。
全部ではありませんが、冒頭の部分を作ってもらいました。
たった3枚ですが、ここまで行きつくには半日かかってしまいました。
今までの工程で作った方が早い!!
最初はそう思ったのですが、最終的にはChatGPTを使いこなせれば確実に効率化できる!!!
に変わりました。
今回の実施した作業工程です。
マクロを実行した動画
複数のデータを、ChatGPTの書いたVBAマクロを実行してエクセルの1シートへ編集しました。
自分1人ではできそうもないことが
ChatGPTの力をかりればできてしまう。
3.作成手順
会議資料に作成するエクセルのシートを準備
ChatGPTに別のシートから空欄に数値を入力してという無茶ブリには
何の数値を入力するのか指定くださいとの優しい回答をいただきました。
別シートの数値データを会議資料用のシートに入力させる
このような数値データが別のシートにあります。
この数値を上記シートの必要なセルに入れていきます。
今までVLOOKUP関数を使い作成していました。
なかなか思い通りには作ってくれません
対話を続けて3時間
どのシートの数値を該当のセルに表示すればいいか指定して、表を作成したら
フォーマットが崩壊 フォント、数値単位、少数点以下、罫線を変えてしまいました。
思わず、『あ~何てことをしてくれるんだ』 と呟いてしまいました。
4.プロンプトを考える
気を取り直して、聞き方が良くないのかと思い、プロンプトを調べ変更しながら
自分自身が理解できる知識で質問の仕方を変えていきました。
なんとなく、仕組みがわかるようになってきました。
まずは、VLOOKUP関数から、マクロを使って表を完成させてみようと下記プロンプトを入力
ChatGPTにマクロをExcelへ挿入してもらう方法を聞く
マクロの入力方法を質問
回答のように入力開始
- 開発画面から、VBAの標準モジュールの画面を開く
- ChatGPTの作成したマクロをコピーして貼付ける
- VBAの隣にあるマクロボタンをクリックして実行
問題なく動くのですが、もっと短縮できるのではないかと考えました。
まとめる指示をだしてみました。
すると、マクロの構造が変わりました。
よーく読んでみると、VLOOKUP関数をまとめていることに気が付きました。
構造を理解しながらChatGPTと対話して
完成したマクロ
VLOOKUP関数に加えて引き算もマクロで追記してもらいました。
Sub InsertVlookupFormulasAndSubtractionFormulas()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("週間")
Dim i As Integer
Dim rows1 As Variant
Dim rows2 As Variant
rows1 = Array(5, 6, 7, 8, 9, 10)
rows2 = Array(13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
' KKカンパニーからHグループまで
For i = LBound(rows1) To UBound(rows1)
ws.Range("D" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'週間ライン別'!$A:$U,14,0)"
ws.Range("E" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'週間ライン別'!$A:$U,15,0)"
ws.Range("F" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'週間ライン別'!$A:$U,19,0)"
Next i
' A店からO店まで
For i = LBound(rows2) To UBound(rows2)
ws.Range("D" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'週間店別'!$E:$U,9,0)"
ws.Range("E" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'週間店別'!$E:$U,10,0)"
ws.Range("F" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'週間店別'!$E:$U,14,0)"
Next i
' KKカンパニーからHグループまで
For i = LBound(rows1) To UBound(rows1)
ws.Range("G" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'累計ライン別'!$A:$U,14,0)"
ws.Range("H" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'累計ライン別'!$A:$U,15,0)"
ws.Range("I" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'累計ライン別'!$A:$U,19,0)"
Next i
' A店からO店まで
For i = LBound(rows2) To UBound(rows2)
ws.Range("G" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'累計店別'!$E:$U,12,0)"
ws.Range("H" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'累計店別'!$E:$U,13,0)"
ws.Range("I" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'累計店別'!$E:$U,17,0)"
Next i
' KKカンパニーからHグループまで
For i = LBound(rows1) To UBound(rows1)
ws.Range("J" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'月中ライン別'!$A:$U,9,0)"
ws.Range("K" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'月中ライン別'!$A:$U,10,0)"
ws.Range("L" & rows1(i)).Formula = "=VLOOKUP($A" & rows1(i) & ",'月中ライン別'!$A:$U,11,0)"
Next i
' A店からO店まで
For i = LBound(rows2) To UBound(rows2)
ws.Range("J" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'月中店別'!$E:$U,4,0)"
ws.Range("K" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'月中店別'!$E:$U,5,0)"
ws.Range("L" & rows2(i)).Formula = "=VLOOKUP($A" & rows2(i) & ",'月中店別'!$E:$U,6,0)"
Next i
' 予算差と昨対を計算
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "J").End(xlUp).Row ' J列の最終行を取得
For i = 5 To lastRow
' 12行目と28行目以降はスキップ
If i <> 12 And i < 28 Then
' M列にJ列引くK列の結果を入力
ws.Cells(i, "M").Formula = "=J" & i & "-K" & i
' N列にJ列引くL列の結果を入力
ws.Cells(i, "N").Formula = "=J" & i & "-L" & i
End If
Next i
MsgBox "VLOOKUP関数の挿入と計算が完了しました。", vbInformation
End Sub
最初は12行目と28行目以降も計算してしまったため
計算しないように指示をしました。それで追加されたのがこの部分です。
For i = 5 To lastRow
' 12行目と28行目以降はスキップ
If i <> 12 And i < 28 Then
' M列にJ列引くK列の結果を入力
ws.Cells(i, "M").Formula = "=J" & i & "-K" & i
' N列にJ列引くL列の結果を入力
ws.Cells(i, "N").Formula = "=J" & i & "-L" & i
End If
Next i
###完成したシートからChatGPTに原因と課題を聞く
原因と課題を尋ねると、以下のように回答してくれました。
よく読まないと、間違った事を言っていることがあります。
間違っている部分を指摘してみました。
すると、素直な反省文が返ってきます。すごい!!
いつも言い訳ばかりしている自分自身が恥ずかしい
パワーポイントのスライドを作成依頼
原因と課題の内容をパワーポイントに反映するマクロを作成してもらいました。
作成してくれたコードをエディターに貼付けて実行
なんと!!荒いですがスライドができてしまった。
修正は必要ですが、月曜早朝の孤独な作業が
共同作業に変わる。
そして、習得すれば様々な応用が可能です。。
5.おわりに
ChatGPTと作業をしてみてわかった事
・非常に優秀なパートナーであり視野が広がる。
・質問方法(プロンプト)で回答内容が違う。
・間違った回答もあるためチェックが必要。
・抽象的な指示には抽象的な回答をしてくる。
活用方法によって、大きく作業効率が上がると確信しました。
効率化された時間の活用方法
・分析内容をもっと多角的に行い、確度の高い経営判断の基準にする。
・関連部署や関係者とのコミュニケーションを増やし成果をあげる。
・個人的な時間の活用としてプログラム言語の習得をしていきたい。
今後もパートナーとして助けてもらいます。
拙い文章ですが、最後までお読みくださりありがとうございました!