技術本部 Bill One Engineering Unit の河端です。
本記事は【Bill One 開発 Unit ブログリレー】という連載記事のひとつです。
"エンジニアはExcelに詳しい"。
社会にはそのような誤った風説が流布されています。
「○○くん、これExcelでまとめておいてー、エンジニアなんだから詳しいでしょ」
「○○さん、Excelのこの関数なんですけどー」
全然詳しくないのにExcelタスクを振られ、
初心者用Excelを開いたのは私だけではないでしょう。
(私だけではないですよね?)
そんな我々に救世主が現れました。そう、ChatGPTです。
ChatGPTは便利なツールですが、質問する方法により回答精度が変わってしまいます。
適切なテンプレートを作成することで、回答精度の均質化が可能です。
Excel質問のために、ある程度の精度の回答を返却するテンプレートを作成しました。
テンプレート
検証環境: GPT4
# 前提 - 入力データ形式から、成果物を出力するための手順及び関数を生成 - 対象ツールで確実に動作すること - 手順における対象ツールのバージョンを記載すること - 手順/関数はなるべく簡潔に - 複数手順が必要な場合はその旨を明確に記載 # 対象ツール (編集対象) // Excel or Googleスプレッドシートetc # 成果物 入力データ形式から、下記条件を満たした〇〇を作成する。 (編集対象) // 出力したいもの。図・グラフ・表etc # 入力データ形式 (編集対象) // ※注意: 丸投げではなく、必要に応じて匿名化等の加工処理を実施してください。
具体事例
Excel形式のエラーログを渡され、以下のように加工してほしいと頼まれたというケースを考えてみます。
元データ
protoPayload.resource | protoPayload.status | timestamp |
---|---|---|
/api/hoge/tests/243132 | 500 | 2023-05-16T08:03:21.840584Z |
/api/hoge/tests/243133 | 500 | 2023-05-16T08:03:21.722043Z |
/api/fuga/tests/3213/send | 500 | 2023-05-16T08:19:21.557277Z |
期待するデータイメージ
errorDate | hoge | fuga |
---|---|---|
2023/05/16 08:03 | 2 | 0 |
2023/05/16 08:16 | 0 | 1 |
この条件を文字列で起こすと下記のようになるでしょうか。
- "timestamp" 列の値を"yyyy-mm-dd hh:mm"に変換し、その時刻でまとめる
- "protoPayload.resource"列の値を "api/"の後ろの文字列(hoge等)毎に変換し、その名称でまとめる
- 時刻は行ごと、サービスは列ごとで分割する
これを踏まえてテンプレートを下記のように編集し、投げます。
# 前提 - 入力データ形式から、成果物を出力するための手順及び関数を生成 - 対象ツールで確実に動作すること - 手順における対象ツールのバージョンを記載すること - 手順/関数はなるべく簡潔に - 複数手順が必要な場合はその旨を明確に記載 # 対象ツール Googleスプレッドシート # 成果物 入力データ形式から、下記条件を満たした表を作成する。 - "timestamp" 列の値を"yyyy-mm-dd hh:mm"に変換し、その時刻でまとめる - "protoPayload.resource"列の値を "api/"の後ろの文字列(hoge等)毎に変換し、その名称でまとめる - 時刻は行ごと、サービスは列ごとで分割する # 入力データ形式 (元データの形式を貼り付ける)
今回は次のように、ピポットテーブルを利用する方法がChatGPTから出力されました。
手順 1: エラー発生時刻(日時分単位)とサービス名を抽出 1. H列の上部(例えば H1 セル)に「Error DateTime」という名前を付け、H2 セルに以下の公式を挿入します。 (関数) 2. I列の上部(例えば I1 セル)に「Service Name」という名前を付け、I2 セルに以下の公式を挿入します。 (関数) 上記の手順で、エラーが発生した時間(日時分単位)とサービス名を抽出します。 手順 2: エラーの集計 任意の空いているセル(例えば A10 セル)に以下の公式を挿入します: (関数) 手順 3: ピボットテーブル作成 既存のデータを選択し、上部メニューバーの「データ」から「ピボットテーブル」を選択します。 新規シートが開かれ、ピボットテーブルエディタが表示されます。エディタで以下の設定を行います: 「行」に「Error DateTime」を追加 「列」に「Service Name」を追加 「値」に「COUNTA of Service Name」を追加 これにより、指定された成果物が完成します。サービスごとにエラーの発生数が集計され、エラーが発生した時間(日時分単位)ごとに行が作成されます。
手順実行時に一部エラーになる箇所があったため、
"手順2でエラーになります" と入力すると修正スクリプトが出力されます。
その修正を反映しつつ実行したところ、想定どおりの表を作成できました!
まとめ
ChatGPTをうまく活用することで、Excelへの苦手意識は改善できるのではないかと思います。
複雑な処理だといきなり完全な手順を作成することは難しいですが、
それでもChatGPTを利用することで業務効率を向上させることが可能です。
"脱・Excel使えないエンジニア" しましょう!