
[生成AI 仕事術] 生成AIでExcel関数を使いこなす
はじめに
今回は、Copilotを使ってExcelの作業を効率化する方法です。
私はExcelを作る際、このやり方でだいたい30分以上の時短を実際に行っています。ぜひみなさん実践してみてください。
1. 今回の話の前提
1-1. 無料版のCopilotのみで使えます
こんにちは。山口です。
今回はCopilotの話になります。Copilotには無料版と有料版がありますが、今回は無料版だけで実現できる内容です。Edgeブラウザを立ち上げると誰でも使えるこちらになりますのぜひ今日から実践してみてください!

1-2. マクロの知識は不要
もう一つ今回の前提です。
生成AIでExcelというと、マクロ (VBA) のプログラムを組んでもらうこともありますが、今回は必要ありません。セルの関数だけで業務を加速する方法をお伝えします。
2. Copilotで素早く正確にExcelを作る
2-1. 複雑な関数を高速で作成する
本編に入りましょう。オフィスワーカーの方々は、Excelでセルに関数を入力する場面は多いと思います。その際、複数の条件がある関数を作る時に迷う時がありませんか?
例えばシステム開発をする方であれば、ExcelでWBSを作る時があるかと思います。そんな時、こんな条件のセルを作りたいと思ったとします。
進捗状況のステータス列を作り、各条件で自動的にステータスが入るようにします。
■ステータス条件
[未着手] : 予定開始日より前の場合
[実施中] : 実際に作業が開始されている
[完了] : 作業が完了している
[遅延] : 予定終了日を過ぎているのに作業が完了していない
※ 予実績の日付列は用意されているものとします
このような複数条件の関数を作るのは、Excelで最も難しい作業の1つです。
この関数を、無料版のCopilotを使って作ってみましょう。
Excelの関数を教えてください。
今WBSを作っていて、以下のような列があります。
A列:予定開始日
B列:終了予定日
C列:実開始日
D列:実終了日
このとき、E列に「ステータス」の列を作りたいと思っています。E列は、以下の条件で各ステータスを表示したいです。
[未着手] : 本日が、予定開始日より前である
[実施中] : 実開始日が記入されている
[完了] : 実終了日が記入されている
[遅延] : 本日が、予定終了日を過ぎているのに、実終了日が記入されていない。もしくは、本日が予定開始日を過ぎているのに、実開始日が記入されていない
このようなE列に必要な関数を教えてください。
その回答がこちらです。説明付きで、このままコピペすればいいだけなので、簡単ですね。

実際にこの関数をE列にコピペすると、ステータス列が自動的に入るようになります(今日は2024/10/26なので、その日付を判定しています)

プロンプトは少し長かったですが、それでも慣れれば2-3分で書けます。
実際にこの関数をセルに入れようと思ったら、私なら30分はかかります。
これは、かなり有効な活用方法なのでしょうか。
2-2. 条件付き書式を高速で作ってもらう
関数よりは敷居が低いですが、条件付き書式も複数条件を作ろうとすると意外と大変です。ここはCopilotに聞いてみましょう。
E列のステータスが「完了」の場合はセルを濃いグレーにして文字色を白にしたいです。また、「遅延」の場合はセルを黄色にして赤い太字にしたいです。どのようにすれば可能か教えてください。

とても丁寧に、ステップバイステップで教えてくれます。Excel初心者でも綺麗で自動化されたExcelを作ることが簡単にできますね。

3. Copilotを使ってExcelの関数を解読する
自分でExcelを作るよりも大変なのが、他人が作ったExcelの関数を読み取ることです。例えば、あるセルにこんな関数が入っていました。
=IFERROR(IF(SUM(VLOOKUP(A2, structures!A:B, 2, FALSE), 0) > 100, IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 500, "High",IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 300, "Medium",IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 100, "Low",IF(SUM(VLOOKUP(A2, structures!A:B, 2, FALSE), 0) < 50, "Very Low", "None")))),"-"), "-")
よくあるのが「IF大すぎ問題」ですね。Excelのセルは関数が1行で表示されるので、何が書いてあるのか全く分かりません。これもCopilotに翻訳してもらいましょう。
このExcel関数を解読して、何を表示するセルなのか説明していただけますか?structures というシートには、商品と在庫数が書かれていました。
-------------
=IFERROR(IF(SUM(VLOOKUP(A2, structures!A:B, 2, FALSE), 0) > 100, IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 500, "High",IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 300, "Medium",IF(VLOOKUP(A2, structures!A:B, 2, FALSE) > 100, "Low",IF(SUM(VLOOKUP(A2, structures!A:B, 2, FALSE), 0) < 50, "Very Low", "None")))),"-"), "-")
こちらが回答です。非常にわかりやすく書いてあり、在庫数に応じて商品の在庫過剰リスクを表している列であることがわかりました。これもだいたい1分で理解できるので、非常に業務効率を上げることができます。

最後に
Excelには、Copilot for Excel がついています (有料版のみ) が、テーブル化しないと使えない等、まだまだ実務に沿ったものとは言えません。もっと基礎的なところで、無料版のCopilotを使って業務効率化をして残業を減らしていきましょう!
ではまた来週。