ChatGPTとは
使い方のガイド
文例・例文のサンプル
ChatGPTについて教えて
始め方(はじめかた)、書き方
プロンプトのテンプレート

AIへの会話指示文/プロンプト

image

エクセルの関数を作ってもらう

113     40915   𝕏 シェア


基本的な使い方

エクセルでやりたいことを指定するとAIが関数を考えてくれます
まずは、この例題で試してみましょう。E2、E4のセルに入れるべき数式を尋ねます。



※ AIはあなたのデータ内容について知りませんので、お使いのデータの「列の情報」を含めて与えます。


りんごの出荷検査を記録した
エクセルのデータがあります。
---▼★
A列: りんごの番号
B列: 品質の判定(合格、または不合格)
C列: りんごの重さ★▲
---
品質が"合格"になっている
りんごの個数を
求める関数を書いてください。
>

=COUNTIF(B:B, "合格")

この関数は、B列(品質の判定)に含まれるセルの中で、値が"合格"であるものの数をカウントします。

では、品質が"合格"になっている
りんごの「重さの合計」を
求める関数を書いてください。
>

=SUMIF(B:B, "合格", C:C)

この関数は、B列(品質の判定)が"合格"であるセルに対応するC列(りんごの重さ)の値を合計します。

正しい数式が得られました!

では、別の例題です。日付を計算する式を考えてもらいます。

ステップバイステップで慎重に考えて、
以下のようなエクセルの関数を教えてください。
"""▼★
A1セルに入れた日付の「翌月の10日」を計算してB1セルに入れたい。★▲
"""
>

以下のステップでエクセル関数を作成します。

B1セルを選択します。
「=DATE(YEAR(A1), MONTH(A1) + 1, 10)」と入力します。これにより、A1セルの日付から1ヶ月進んだ日の10日を計算します。
入力が完了したら、Enterキーを押します。
B1セルには、A1セルの翌月の10日が表示されます。

確かに、数式「=DATE(YEAR(A1), MONTH(A1) + 1, 10)」で
うまく動きました。

※ 数式はかならずご自分で動作確認をしてください。


次はさらに、レベルを上げてみましょう。
自分で書くとややこしい「第X番目のY曜日」を例題にします。

※ ここからはGPT-4を使います。


ステップバイステップで慎重に考えて、
以下のようなエクセル関数を教えてください。
"""▼★
A1セルに入れた日付が、
第2金曜日であるかどうかを判定したい★▲
"""
>

指定した日付が特定の第2金曜日であるかを判断する関数を作成するには、以下の手順を試してみてください:

・指定した日付の月と年を取得します。
・その月の第1日(つまり、同じ年月の1日)を取得します。
・その月の第1日から週の終わり(金曜日)までの日数を計算します。
・計算した日数に7を加えて、第2金曜日の日付を取得します。
・最初に指定した日付と第2金曜日の日付が一致するかを確認します。
・これらのステップをエクセルの式で表現すると以下のようになります:

=IF(A1=DATE(YEAR(A1), MONTH(A1), 1 + MOD(5 - WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1)), 7) + 7), "Yes", "No")

動かしてみると、正しくないので指摘しましょう


木曜日の日付なのにYesが出てきます
>

すみません。修正した式は以下のようになります。

=IF(A1=DATE(YEAR(A1), MONTH(A1), 1 + MOD(6 - WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1), 7) + 7)), "Yes", "No")

エクセルに入れるとエラーが出るので、再度、指摘します。


引数が少なすぎます、というエラーが出ます
>

申し訳ありません、私の間違いです。修正後の式は以下のようになります:

=IF(A1=DATE(YEAR(A1), MONTH(A1), 1 + MOD(6 - WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1)), 7) + 7), "Yes", "No")

うまく動きました!

このように何回かやり直しを経ることで
正しい答えを出すことができました。

なお、別解にたどり着く読者もいるかも知れません。
答えは一通りではありませんので
場合によって回答(数式の書き方)は変わります。


=IF(DAY(A1) = IF(WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1)) <= 6, 6 - WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1)) + 1, 6 - WEEKDAY(DATE(YEAR(A1), MONTH(A1), 1)) + 1 + 7) + 7, "Yes", "No")

 

他のバリエーション

逆に、複雑なエクセルの数式を解釈してもらうこともできます。


以下のエクセル関数が何をしているかを
ステップ・バイ・ステップで丁寧に説明してください。

=IF(BZ38="","",IF(ROW()-ROW($CB$4)<$CB$4,"",AVERAGE(OFFSET(BZ38,0,0,-$CB$4,1))))
>

この関数は特定の条件に基づいてセルの値を計算します。以下、ステップ・バイ・ステップで説明します。


  1. =IF(BZ38="","",...):
    最初のIF関数はセルBZ38をチェックします。もしBZ38が空白("")なら、結果も空白("")にします。つまり、この条件が真(true)の場合、数式の計算はここで終了し、何も表示されません。もしBZ38に何か値が入っている場合は、次の条件に進みます。

  2. IF(ROW()-ROW($CB$4)<$CB$4,"",...):
    次のIF関数は、現在の行の行番号とセル$CB$4の行番号の差が、$CB$4の値より小さいかどうかをチェックします。ROW()関数はセルの行番号を返し、$CB$4にはおそらく数字が入力されていると思われます。この条件が真の場合、つまり現在の行が$CB$4で指定された範囲より上にある場合、結果は空白になります。そうでなければ、次の計算に進みます。ここでの$記号は絶対参照を意味し、数式をコピーしても参照するセルが変わらないようにしています。

  3. AVERAGE(OFFSET(BZ38,0,0,-$CB$4,1)):
    条件が偽(false)の場合、AVERAGE関数を使って平均値を計算します。この計算ではOFFSET関数を使用して特定の範囲を指定しています。OFFSET(BZ38,0,0,-$CB$4,1)は、基点となるセルBZ38から、行方向に0行移動、列方向に0列移動し、その位置から上に$CB$4セル分移動した範囲(高さ-$CB$4、幅1列)のセルを選択します。AVERAGE関数はこの範囲に含まれるセルの平均値を計算します。



要約すると、この数式は以下の条件で動作します:


  • BZ38が空白なら、結果も空白。
  • 現在の行が$CB$4で指定された範囲より上にある場合、結果は空白。
  • 上記のいずれの条件も満たさない場合、BZ38から上に$CB$4セル分の範囲にあるセルの平均値を計算します。

これにより、特定の条件下でセルの平均値を計算するために使用される便利な数式となっています。



もう一例挙げてみます。


以下のExcel関数が何をしているかを
ステップ・バイ・ステップで丁寧に解釈して
表にまとめてください。

=IF(BQ57="","",IF(BN57<>"N",$BY$13,IF(BO57="N",IF($BY$11=0,"",$BY$11),IF($BY$12=0,"",$BY$12))))

>

この関数は条件分岐を使って特定のセルの値に基づいて異なる結果を返します。ステップ・バイ・ステップで詳しく見ていきましょう。


  1. 最初の判断: BQ57のセルが空白かどうかを確認します。

    • 空白の場合: 関数全体の結果も空白になります。
    • 空白でない場合: 次の条件へ移ります。
  2. 二番目の判断: BN57のセルの値が"N"でないかどうかを確認します。

    • "N"でない場合: $BY$13のセルの値を返します。
    • "N"の場合: 次の条件へ移ります。
  3. 三番目の判断: BO57のセルの値が"N"かどうかを確認します。

    • "N"の場合: $BY$11のセルの値が0かどうかを確認します。
      • 0の場合: 空白を返します。
      • 0でない場合: $BY$11のセルの値を返します。
    • "N"でない場合: $BY$12のセルの値が0かどうかを確認します。
      • 0の場合: 空白を返します。
      • 0でない場合: $BY$12のセルの値を返します。


この関数は主に条件に基づいて異なるセルの値を選択するために使用されます。表にまとめると以下のようになります。


ステップ条件真の場合偽の場合
1BQ57が空白か空白を返すステップ2へ
2BN57が"N"でないか$BY$13を返すステップ3へ
3BO57が"N"か$BY$11が0かを確認$BY$12が0かを確認
4 (3の内部)$BY$11が0か空白を返す$BY$11を返す
4 (3の内部)$BY$12が0か空白を返す$BY$12を返す


 
テーマ 家電・パソコン
タスク コーディング
タグ #エクセル#ソフトの使い方
動作環境の例 OpenAI ChatGPT3.5、GPT4推奨、Google Gemini、Bing
投稿・編集日 2023/04/01・2024/03/02
提案者 まめたろう
出典・参考 なし
留意事項 他の「プロンプト集」へ収載する場合は、出典として本サイトのURLを明示してください



お気に入り機能は登録不要で使えます
※このブラウザ内にのみ保存されます



ご提案を受付ています

サイトの拡充・改善に取り組んでいます。
感想やリクエストなどお気軽にどうぞ
ご提案フォームを開く