ChatGPTの活用編:Excelの計算式の作成を手伝ってもらいました!

ChatGPTの活用方法はたくさんありますが、今回は、身近なエクセルの計算式の作成をChatGPTに手伝ってもらいました。

長くなってしまいましたが、途中の経過も参考になると思いますのでそのまま全部を載せました。

目次

今回の素材となるエクセル

少し表の中味は変更していますが、毎月作成している下記のような時間割チェック表を今回はサンプルとしました。

この表は

  • 1行目に2024年8月用のタイトル「2024年(令和6年) 8月 時間割チェック表」にして
  • 2行目に8月の日付「1」~「31」をつけて
  • 日曜日のセルを赤くしたものです。

9月(翌月)になるときに、

  • 8月(今月)のシートをコピーして、タイトルを変更して、
  • 日曜日の赤いセルを9月用に変更します。

変更自体は、それほど時間はかかりませんが、エクセルだと計算式や条件付き書式を設定すれば自動化できるはずです。

あとは、最初に計算式や条件付き書式の設定にかける時間と、毎月手作業で変更する時間と比較して、費用対効果でどっちがいいか、です。

手作業で計算式を考えて設定はできますが、いざやるとなると結構面倒なので、今までは、手作業で行ってきました。

しかし、せっかくChatGPTがあるので、今回、計算式と条件付き書式をChatGPTに手伝ってもらって設定方法を教えてもらって自動化してみました。

ChatGPTとのやり取りの記録

エクセル作者からの1回目の依頼

エクセルでその年の月単位の時間管理の表を作成しています。

B1には、その表の年月日を8月分のであれば、8/1と入力しています。
2行目には、8月ならばその月の日(1日、2日~31日)を入力しています。
F2が1日、G3が2日・・・・・・AJが31日です。

【お願いしたいこと】

【その1】
2024年8月に作成する際に、例えば、B1に、8/1と入力すると、
“2024年(令和6年)8月 時間割チェック表”
と表示されるような計算式ないし設定方法を教えてください。

【その2】
また、B1に、8/1と入力すると、これを基準に2行目の日にちの日曜日のセルの色が自動で赤になる方法を教えてください。

【まとめ】

やりたいことは、例えば、8月の時間管理表のシートを完成できたらは、
9月以降、この8月のシートをコピーして、B1にその月の日付をいれるだけで、
9月分の時間管理表のシートを完成させたい、ということです。

日本語で回答お願いします。

ChatGPTの1回目の回答

了解しました。エクセルで指定した年月に基づいて時間管理表を自動的に作成し、日曜日のセルの色を自動的に赤にする方法について説明いたします。

【その1】表題の設定方法

  1. セルの設定方法
    • セル B18/1 と入力します。
    • 次に、表題を表示させたいセル(例えば A1)を選択します。
    • A1 に以下の数式を入力します。

=”2024年(” & TEXT(DATE(2024, MONTH(B1), 1), “[$-ja-JP]ggge年”) & “) ” & MONTH(B1) & “月 時間割チェック表”

解説

  • DATE(2024, MONTH(B1), 1) で、2024年のB1の月の1日の日付を作成しています。
  • TEXT 関数を使って和暦表示に変換し、必要な文字列を組み合わせています。

【その2】日曜日のセルの色を自動で赤にする方法

  1. 日付を基準に日曜日を特定する方法
    • 日付が入力されている行(この場合は2行目)の範囲(例えば F2:AJ2)を選択します。
    • ホーム タブの 条件付き書式 を選択し、新しいルール をクリックします。
    • 数式を使用して、書式設定するセルを決定 を選択します。
    • 以下の数式を入力します。

=WEEKDAY(F$2, 2) = 7

解説

  • WEEKDAY 関数を使って日付の曜日を取得し、日曜日(7)と比較しています。
  • F$2$ は列固定を意味し、行を動的に変化させます。
  1. 書式設定
    • 書式設定画面で 書式 ボタンをクリックし、フォント タブで に設定します。
    • 最後に OK をクリックして設定を適用します。

これで、B1に8/1と入力するだけで、表題が自動的に設定され、2行目の日付のセルのうち日曜日のセルの色が赤に変わるようになります。

【まとめ】

この設定を行うことで、8月のシートを9月以降にコピーして、B1にその月の日付を入力するだけで、その月の時間管理表を簡単に作成できます。

エクセル作者

教えてもらった通りに設定しましたが、日曜日の日付のセルが赤くなりません。

AI

うまくいかなかった部分を伝えて正しくなるように作りなおしてもらいましょう!

エクセル作者からの2回目の依頼

その1表題の設定方法についてはうまくできました

しかしその2については思いどおりの結果が表示されていません
うまくいかない理由を私は次のように考えました
=WEEKDAY(F$2, 2) = 7

これだけだとその日付が何年何月の日付かというのがわからないのではないかと思います

日付が1日から始まるF1の曜日は、B1に入力された”8/1″(2024/8/1)を基準に木曜日と計算され、その1日の木曜日を基準に2行目の日付は、順番に
1日=木曜日
2日=金曜日
3日=土曜日

4日=日曜日
と計算され、4日の日曜日のセルの色が自動で赤になる、というのがやりたいことです。
以下、順番に日曜日のセルの色は自動で赤にしたいのです。

なお、今現在は、
1日~31日の数字は入力されていて、セルの色のみ変更したいという方法が知りたいです。

ただ、このやり方だと、例えば、9月は30日までなので、手動で31日の日付を削除する必要があります。

複雑になりそうなのでこの方法にしましたが、複雑な方法が可能なら、次の方法も別にあわせて教えてください。

F2からAJ2は、B1に入力した日付のその月の1日から末尾までの日にちを順番に入力したいです。
B1に日付を入れたらその月の1日から夏までの日付を自動的にF 2 を初日として入力してください
2月4月6月9月11月は31日あるいは2月は30日29日がない場合があります
その場合は翌日の1日21などの数字にしてください

その上でF 2 から始まる日にちの日曜日はセルの色を赤くしたいです

ChatGPTの2回目の回答

了解しました。日付を基準に曜日を計算し、日曜日のセルの色を自動で赤にする方法について詳しく説明します。また、B1に日付を入力した際に、その月の日付を自動で入力する方法についても説明します。

日曜日のセルの色を自動で赤にする方法

  1. 日付を基準に日曜日を特定する方法
    • 日付が入力されている行(この場合は2行目)の範囲(例えば F2:AJ2)を選択します。
    • ホーム タブの 条件付き書式 を選択し、新しいルール をクリックします。
    • 数式を使用して、書式設定するセルを決定 を選択します。
    • 以下の数式を入力します。

=WEEKDAY(DATE(2024, MONTH($B$1), F2), 2) = 7

解説

  • DATE(2024, MONTH($B$1), F2) で、2024年のB1の月のF2セルの値を日付として扱います。
  • WEEKDAY 関数を使ってその日付の曜日を取得し、日曜日(7)と比較しています。
  1. 書式設定
    • 書式設定画面で 書式 ボタンをクリックし、フォント タブで に設定します。
    • 最後に OK をクリックして設定を適用します。

日付の自動入力方法

  1. 1日からその月の最終日までの日付を自動入力する方法
    • F2 セルに以下の数式を入力します。

=IF(DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2))>DAY(EOMONTH($B$1,0)),””,DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2)))

解説

  • DATE(2024, MONTH($B$1), 1) で2024年のB1の月の1日の日付を作成します。
  • COLUMN() を使ってセルの列番号に基づいて日付を増加させます。
  • EOMONTH($B$1, 0) でその月の最終日を取得し、不要な日付を空白にします。

この数式を F2 から AJ2 までコピーします。

結果

これにより、以下のことが実現されます:

  1. B1 に日付を入力すると、2行目にその月の日付が自動的に入力されます。
  2. 日付が自動的に入力された後、2行目の日曜日のセルが自動的に赤色になります。

これで、各月のシートを簡単に作成できるようになります。

エクセル作者からの3回目の依頼

ありがとうございました。うまくいきました。
今後の参考までに教えてください。
今回、その2が完全でなかったのは、なぜでしょう?
私の方の聞き方をどのように工夫したら防げましたか?
もともと、うまくいかないことを前提に、順番に正解に近づく、というやり方の方がいいのでしょうか?
いつも助かっていて、今後もお願いしたいので、コツなど教えてください。

ChatGPTの3回目の回答

解決できたようで良かったです!今後の質問や問題解決の際に役立つコツについてお伝えします。

完全な解決に至らなかった理由

  1. 情報の不足:最初の説明には、日付が1日から始まる列の具体的な日付の位置や、具体的にどのように日曜日を計算するのかといった詳細な情報が不足していました。
  2. 前提条件の誤解:日付の入力方法や範囲の固定方法についての前提が一致していなかったことが原因です。

効果的な質問のコツ

  1. 具体的な情報を提供する
    • 問題の背景や具体的なセルの位置、内容などを詳しく説明することが重要です。
    • 例えば、「F2には1日、G2には2日…といった具合に日付が入っています」といった具体的な情報があると、より正確なアドバイスができます。
  2. 期待する結果を明確に伝える
    • 最終的にどういう結果を求めているのかを明確にすることで、回答が具体的で的確なものになります。
    • 例えば、「B1に日付を入れたら、その月の日付が自動的に入力され、日曜日は赤く表示されるようにしたい」といった具体的な希望を伝えると良いです。
  3. 手順を順番に確認する
    • 複雑な問題の場合、一度に全てを解決しようとするのではなく、段階を踏んで順番に解決していく方法も効果的です。
    • まずは日付の自動入力方法を確認し、その後で条件付き書式の設定を確認する、といった具合です。
  4. フィードバックを提供する
    • 提案された解決策がどのように機能したかをフィードバックすることで、次のステップでより的確なアドバイスを受けることができます。
    • 「日付の入力はうまくいきましたが、条件付き書式の設定がうまくいきません」といった具体的なフィードバックを提供すると良いです。

まとめ

質問する際には、具体的な情報を提供し、期待する結果を明確に伝え、手順を順番に確認することが重要です。また、フィードバックを提供することで、次のステップでより的確なアドバイスを受けることができます。このようにして、順番に正解に近づけていくアプローチが効果的です。

これからもご質問があればいつでもお手伝いさせていただきますので、お気軽にお声がけください。

エクセル作者からの4回目の依頼

今回、その1については、最初ので大丈夫でした。
その2は、複雑な方、つまり、F2からAと2まで、
=IF(DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2))>DAY(EOMONTH($B$1,0)),””,DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2)))
この数式をいれて思った通りの結論になりました。
私の質問とChatGPTの最終的なその1の回答とその2の回答を他のエクセルのユーザーに商会したいです。
途中の不完全な回答や再条件は省略した私の質問とChatGPTの回答を再度、再現して欲しいです。

上記中の「商会したい」は、正しくは「紹介したい」ですが、このような誤字や間違いは、問題になりませんので、安心して質問できます。

ChatGPTの4回目の回答

了解しました。以下に、最終的な完全な質問と回答を再現いたします。


質問

エクセルでその年の月単位の時間管理の表を作成しています。

B1には、その表の年月日を8月分のであれば、8/1と入力しています。2行目には、8月ならばその月の日(1日、2日~31日)を入力しています。F2が1日、G3が2日・・・・・・AJが31日です。

【お願いしたいこと】

【その1】 2024年8月に作成する際に、例えば、B1に、8/1と入力すると、 “2024年(令和6年)8月 時間割チェック表” と表示されるような計算式ないし設定方法を教えてください。

【その2】 B1に、8/1と入力すると、これを基準に2行目の日にちの日曜日のセルの色が自動で赤になる方法を教えてください。また、B1に日付を入れたらその月の1日から末尾までの日付を自動的にF2を初日として入力してください。2月や4月、6月、9月、11月は30日または31日がない場合がありますが、その場合は翌日の1日などの数字にしないようにしてください。


回答

【その1】表題の設定方法

  1. セルの設定方法
    • セル B18/1 と入力します。
    • 次に、表題を表示させたいセル(例えば A1)を選択します。
    • A1 に以下の数式を入力します。

=”2024年(” & TEXT(DATE(2024, MONTH(B1), 1), “[$-ja-JP]ggge年”) & “) ” & MONTH(B1) & “月 時間割チェック表”

解説

  • DATE(2024, MONTH(B1), 1) で、2024年のB1の月の1日の日付を作成しています。
  • TEXT 関数を使って和暦表示に変換し、必要な文字列を組み合わせています。

【その2】日付の自動入力と日曜日のセルの色を自動で赤にする方法

  1. 1日からその月の最終日までの日付を自動入力する方法
    • F2 セルに以下の数式を入力します。

=IF(DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2))>DAY(EOMONTH($B$1,0)),””,DAY(DATE(2024, MONTH($B$1), 1)+COLUMN()-COLUMN($F$2)))

解説

  • DATE(2024, MONTH($B$1), 1) で2024年のB1の月の1日の日付を作成します。
  • COLUMN() を使ってセルの列番号に基づいて日付を増加させます。
  • EOMONTH($B$1, 0) でその月の最終日を取得し、不要な日付を空白にします。

この数式を F2 から AJ2 までコピーします。

  1. 日付を基準に日曜日を特定し、色を変更する方法
    • 日付が入力されている行(この場合は2行目)の範囲(例えば F2:AJ2)を選択します。
    • ホーム タブの 条件付き書式 を選択し、新しいルール をクリックします。
    • 数式を使用して、書式設定するセルを決定 を選択します。
    • 以下の数式を入力します。

=WEEKDAY(DATE(2024, MONTH($B$1), F2), 2) = 7

解説

  • DATE(2024, MONTH($B$1), F2) で、2024年のB1の月のF2セルの値を日付として扱います。
  • WEEKDAY 関数を使ってその日付の曜日を取得し、日曜日(7)と比較しています。
  1. 書式設定
    • 書式設定画面で 書式 ボタンをクリックし、フォント タブで に設定します。
    • 最後に OK をクリックして設定を適用します。

これで、B1に日付を入力するだけで、その月の日付が自動的に入力され、2行目の日曜日のセルが自動的に赤色になります。

エクセル作者からChatGPTにお礼のことば

すごいです!ありがとうございました。今後ともお願いします。ではでは

ChatGPTの締めの挨拶

ご満足いただけて嬉しいです!いつでもお手伝いしますので、今後ともよろしくお願いします。ではでは、また何かありましたらお声がけください。

まとめ

ChatGPTを使い始めた人が、正確な回答がでなくて諦めたり、使用を中止する場合が多いのではないかと思います。

ChatGPTはドラえもんだと思って会話をキャッチボールしていくと最終的に欲しい結論を得ることができます。

エクセル作者

コツを聞いたら「今後の質問や問題解決の際に役立つコツについてお伝えします。」と教えてくれるのが嬉しい!

コツを聞けば、ちゃんとコツを教えてくれます。

ChatGPTの利用者も、ChatGPTと会話をすればするほどみ聞き方が上手になってきます。

エクセルという誰にでも身近なソフトを題材にChatGPTと会話をすると、自分のスキルもあがっていきますし、何よりも作業をしていて楽しいです!

今回のエクセルを題材にしたChatGPTの使い方が参考になってくれれば幸いです。

目次