はじめに
まず本記事の大前提として、今回はAIに資料を作ってもらうのではなく
"Excelでやりたいことの具体的な方法をAIに教えてもらったら楽だったよ、その上でこんな資料が作れたよ"
という内容の記事です。
全部AIに丸投げでうまく作ってもらう…なんて魔法みたいなことが出来たらよかったのですが、うまくいかなかったので断念しました。
今回AIは現場で推奨されている Copilot を使用しています。
(難しいことはさせていないので、正直なんでもいいと思う)
✅ Excelで資料作成を頼まれたけどあんまり得意じゃないなあ
✅ AI全く使ったことないけどちょっと助けてもらえたら楽そうだなあ
という方は、ぜひ見ていただけたらと思います!
作りたい物とAIの役割
ゴール
依頼内容:実行ログから処理の実行時間帯を可視化してほしい
"稼働中の処理に影響の出る作業が発生する際に作業時間帯に被る処理があるかどうか"
の判断ができる資料を作ることが目的です、おそらく。
ということで ↓↓ のような資料が作りたいな~とぼんやりイメージが浮かびました。
💡 ポイント
- Excelの数式ができるだけ複雑じゃないこと
- 汎用性がある(次回以降も使える)
※実際に「同じまとめ方でこっちのログも!」って後から頼まれたので結果的に大正解
⇒CopilotはExcel数式とまとめ方の相談役になってもらいます
Copilotの手助け
① 可視化する手法そのもののアイデアを聞いてみる
「処理ごとに24時間どの時間に処理が流れているかが分かるようにしてほしいです。
Excel関数でもCopilot側で作るでも出来そうな方法を試してみてください」
Copilot提案:ガントチャート風の積み上げ棒グラフでの作成方法
作ってみたところほぼイメージ通りの形のグラフができました!
※後続タスク的に別のまとめ方のほうがよさそうだったので、今回はこれとは別に数式で整理する方法を引き続き助けてもらいます🙇
② 条件付き書式に設定する数式を作ってもらう
ガントチャートからヒントを得て条件付き書式でできそうやなと思ったので聞いてみます。
C3セルに記載された処理の開始時刻(D3セル)から終了時刻(E3セル)が
“タイムチャート開始時刻(F2セル)から次の時刻の区切り(G2セル)までの間”だった場合に
セルに色がつくような条件付き書式の設定を教えて
Copilot提案: 条件付き書式の設定手順
- 対象範囲を選択(例:C3:C○)
- 「条件付き書式」→「新しいルール」 を選択
- 「数式を使用して、書式設定するセルを決定」 を選択
- 以下の数式を入力:
=AND($D3>=F$2, $E3<=G$2)
※この数式は「開始時刻がF2以上、終了時刻がG2以下」のときに色がつくという意味だよ。
書式(塗りつぶしの色など)を設定して「OK」
具体的なシート名、セル名を投げることでコピペだけで良い数式を作ってくれた、助かる。
③ルールに入れる条件式のバージョンアップ
作業予定の時間帯が複数ありそうなので、全時間帯を1行にまとめる方法も聞いてみます。
タイムチャートで複数の時刻を同一行に反映する数式を教えてほしい。
D19セルの処理名を「作業予定表」シートB列から全て探して、見つけた行の開始時刻(C列)、終了時刻(D列)を色付ける。ただし、B列には同じ処理名が複数個あるため、全てのデータの時刻を19行目に反映すること。
Copilot提案: 条件付き書式に使う数式の例
=SUMPRODUCT((('作業予定表'!$B$2:$B$100=$D19) *(F$2>='作業予定表'!$C$2:$C$100) *(F$2<'作業予定表'!$D$2:$D$100)))>0
解説
F$18 は時間軸の時刻が入っているセル(例えば 9:00)を指すよ。
-
'作業予定表'!$B$2:$B$100は処理名の列。 -
'作業予定表'!$C$2:$C$100は開始時刻。 -
'作業予定表'!$D$2:$D$100は終了時刻。 - SUMPRODUCT を使って、一致する処理名の中で、該当時刻が開始〜終了の範囲に入っているかを判定してるよ。
SUMPRODUCTっていう自分じゃパッと思いつかない関数を教えてくれた、ありがたい。
④処理が重くなったので対処法を相談
SUMPRODUCT関数で条件付き書式したらExcelが重くなっちゃったんだけど良い対処法はある?(もう少し軽い数式とか)
Copilot提案: COUNTIFS関数を使う方法(軽量!)
COUNTIFS は SUMPRODUCT よりも軽くて、条件付き書式でもサクサク動くよ。
=COUNTIFS('作業予定表'!$B$2:$B$100, $D19,'作業予定表'!$C$2:$C$100, "<"&G$2,'作業予定表'!$D$2:$D$100, ">"&F$2)>0
- F$2 は時間軸の時刻。
- $D19 は処理名。
- COUNTIFS は条件に一致する行数を数えるから、1以上なら色付けってわけ!
この方法は、複数条件をANDで判定するのに向いてて、SUMPRODUCTよりもずっと軽いよ。
実際に求める色付け条件は満たせていて且つ軽くなったので大感謝💯
上手くいかなかったこと
①丸投げを試してみる
(csvのデータ添付)実行時間をタイムチャート形式で可視化してください
Copilot:内部処理でエラーが発生しました
⇒どのデータを送ってもこの返答なので早々に諦め
②セルやシート情報を言わずにやりたいことだけ伝える
ネットで調べるのと変わらない情報しか得られない
⇒例に出してくれた数式のセルを、作成中の資料のセル番号に置き換えて数式を作るのが面倒
ここがスムーズにできるならやりたいことをGoogle検索しても変わらないよねっていう話に、、🤷
作成物(タイムチャート表)
AIに助けてもらって出来た資料がこちらです↓
(記事用に簡単に作ったものになります)
なんとも分かりやすい資料になりました、Copilotありがとう。
現場の上長も「100点ですねすばらしい」とのことです、お役に立てて良かった...安心です⭕
おまけ:タイムチャート表の利点
なぜわざわざグラフではなく面倒なまとめ方をしたのかと気になった方へ。
積み上げ棒グラフではなくこの形式のまとめ方をした理由を一応書かせていただきます。
✅便利なところ ↓↓
-
処理名で検索できる
⇒グラフだと検索に引っかからないが、表ならCtrl+Fですぐに特定の処理が見つかる -
処理名でフィルターできる
⇒共通の文言を含むサーバーをまとめて表示でき、視覚的にわかりやすい
例) ”A機能関連” でフィルターしたらA機能に関係する処理の実行時間とA機能関連の作業予定時間帯だけ並べることが出来る →現場でこれが大変便利
-
実行時間でフィルターできる
⇒処理時間が長いものだけ抽出したり、開始時間で並び替えたりできる -
項目[No.]で並び順を元に戻せる
⇒フィルターや並び替えをしても、No.列で昇順にすれば元の順番(ログの出力順)に戻せる -
グラフより対応できるデータ量が多い
⇒たしかグラフだとデータが多すぎて複数個に分けないとって思った気がします、この方法だと400以上のデータまるっと一発で整理できました
おわりに
今回はExcelでのタイムチャート作成をAIに手伝ってもらいながら進めてみました。
AIを軽く使ってちょっとだけ作業を楽にする、これだけでもだいぶ助かりました。
丸投げで良い感じに調整してくれることもありますが、今回は作業の目的と後続タスクを考慮した方法が自分の頭の中にふわっとあったのでそれを実現させる方法を教えてもらうという使い方で🙏
AIを使いこなすのは難しそうでもこの程度のお手伝いを頼むくらいなら誰でもできるのではないかなと思います😌
VBAのコツについての記事なんかも過去に書いた記憶はありますが、実は全然数式なんてよく使うものしか覚えてないし、「こんなのができる数式があったような、、」で毎回検索してたのでこれからも適宜お世話になっていこうかなと思います。
長くなってしまいましたが、ここまでお読みいただきありがとうございました!
(過去のVBAに関する記事やタスク処理のコツについての記事もぜひ~)
