こんにちは!超生産性チャンネルの「やすまる」です!
このブログでは、仕事における生産性を格段に向上させる情報を発信しています!
今回は、ExcelでChatGPTを使う方法をご紹介したいと思います!
今年3月にMicrosoft社がOffice製品に対話型AIを組み込んだ「Microsoft 365 Copilot」をリリースするとの発表がありました
しかし、「Microsoft 365 Copilot」に関して現時点では、一部の企業でプレビューテストを開始しているのみで、ちゃんとしたリリースは数か月後になるとのアナウンスがありました。
なので、それまでは別の方法で対応する必要がありそうです。
そういった状況で今回、Microsoftが発表したエクセル用のアドイン「Excel Labs」を使って、「ChatGPT」(正確に言うとGPTモデル)をExcelで使えるようにしていきます
ちなみにこの「Excel labs」とは「Excel」への追加を検討している新機能をテストするための「Excel」用「Office アドイン」です。
Microsoft社が出しているアドインなので、他のアドインに比べて信頼性はあると思います。
ExcelでChatGPTを使うために、以下のステップで実行環境を準備します
- ChatGPTのアカウント作成
- OpenAI(ChatGPT)のAPIキーを取得
- 「Excel labs」のアドインをExcelに追加
- 「Excel labs」にAPIキーを登録
①ChatGPTのアカウント作成
ChatGPTのアカウント作成方法についてはこちらの記事を確認ください
【ChatGPT登録方法】から機能・設定まで[超詳細に説明]ChatGPTのアカウントを作成済みの場合は、次の②から対応してください。
②OpenAI(ChatGPT)のAPIキーを取得
OpenAIのAPIキーの発行ページにアクセスします(下図、ログインが必要)
画面中央の灰色の「+Create new secret key」のボタンをクリック
Create new secret keyの名前を付けるポップアップ(下図)が表示されるので、名前を付けます(適当な名前でOK)
右下の緑色の「Create new secret key」のボタンをクリック
APIキーが発行されるので、その右の緑色の「四角が二つ重なった」アイコンのボタンをクリック
これでAPIキーがクリップボードにコピーされました
このAPIキーは、一度しか表示されないので、「メモ帳」などテキストエディターにコピーしておきます
緑色の「Done」のボタンをクリックして、ポップアップを閉じます
③「Excel labs」のアドインをExcelに追加
Excelを起動します
上の「挿入」タブを選択すると「アドインを入手」のボタンが出てくるのでクリック
Officeアドインのウインドウが開くので、検索窓に「Excel labs」を入力して検索
検索して出てきたものの中から「Excel Labs, a Microsoft Garage project」を選択
「追加」ボタンをクリック
「少々お待ちください…」という画面が現れるので「続行」をクリック
下の図のように、画面右に「Excel Labs」のアドインが表示されたら「アドインの追加」は完了です
アドインが加わると「ホーム」タブを開いたときの一番右に下図の「Excel Labs」のアイコンが加わります。
このアイコンを押すと上図のエリアを閉じても再び開くことができます。
④「Excel labs」にAPIキーを登録
ChatGPTを使うためには、LABS.GENERATIVEAI関数を使えるようにする必要があるので、
Excelの画面右側に表示された「Excel Labs」の中の「🤖LABS.GENERATIVEAI function」の下の「Open」をクリック
LABS.GENERATIVEAI関数の説明が表示されるので、下にスクロールして「Configure API Key」の個所の入力欄がある「OpenAI API key」の部分に「②OpenAI(ChatGPT)のAPIキーを取得」の時に取得したAPIキーを貼り付けます。
APIキーを貼り付けると、入力欄の右下に”Saved”と表示されます。
これで関数を使用するための準備は完了です。
前段の①~④まで対応できたら、ExcelでChatGPTを使うためのLABS.GENERATIVEAI関数が使えるようになりました
次からは、LABS.GENERATIVEAI関数について説明します。
LABS.GENERATIVEAI関数の概要
LABS.GENERATIVEAI関数は、入力された内容を受け取ってChatGPTに送信し、その応答結果を返します。
【例】
C2セルにプロンプトを入力し、C3セルにLABS.GENERATIVEAI関数を以下のように入力
=LABS.GENERATIVEAI(C2)
C3セルにChatGPTの回答※を表示
※最初は”#Bビジー!”と表示されしばらくすると表示されます。
LABS.GENERATIVEAI関数の詳細
LABS.GENERATIVEAI関数には、以下の4つの引数があり、Promptのみ必須で、Temperature, Max_tokens, Modelは任意です
なので、Promptさえ入力されて入れば、結果が返ってきます。
=LABS.GENERATIVEAI ( Prompt, Temperature, Max_tokens, Model)
使用例:=LABS.GENERATIVEAI (“ChatGPTについて説明してください。”, 0.5, 256, “gpt-3.5-turbo”)
生成AI(ChatGPT)へ渡すプロンプトの値です
別のセルから参照してもいいですし、直接入力してもOKです
直接入力するときはダブルクォーテーション(“)で囲みます
Temperatureは、AIが生成する回答の一貫性とランダム性を調整する値です。
0~2の値で調整でき、この値を低くすると一貫した簡潔な回答を出力し、逆に値を高くすると多様で創造的な回答を生み出します。
事実に基づく質問では低い値が適し、詩や創造的なタスクでは高い値が効果的です。
例えば、「ChatGPTについて説明して」というプロンプトでTemperatureの値を最も低い値”0″、初期値”0.5″、最大値”2”の3パターンで比べてみます。
Temperatureが低いと、箇条書きのように短文で複数出力されました。
Temperatureが高いと、全く理解できない謎の文章で出力されました。
この結果から、低い分には問題ないですが、高すぎると意味不明な回答になるので、上限の調整が必要です。
Max_tokensは、出力可能なトークン数を表します。
トークン数とは、文章の文字数を表し、日本語だと1文字あたり約2トークンです。
設定するAIモデルによっても異なりますが、1~4,000程度の値で調整できるので、換算すると日本語であれば約2,000文字が最大の出力文字数となります。
実行するAIモデルを選択します。
設定するときはダブルクォーテーション(“)でモデル名を囲みます
選択できるモデルは以下の7つです。
モデル名 | タイプ | 特徴 | 用途 |
---|---|---|---|
gpt-3.5-turbo | テキストモデル | GPT-3シリーズの最新版で高性能とコスト効率が良い | テキスト生成、質問応答、概要作成など |
text-davinci-003 | テキストモデル | 最も高性能なモデルで高度な推論能力と知識がある。しかし、コストが高い | 複雑な意図、因果関係、対象者向けの要約 |
text-curie-001 | テキストモデル | 中程度の性能で多様なタスクに対応可能 | 言語翻訳、複雑な分類、感情分類、要約 |
text-babbage-001 | テキストモデル | 低い性能で一般的なタスクに対応 | 中程度の分類、セマンティック検索分類 |
text-ada-001 | テキストモデル | 最も高速だが最も性能が低い。基本的なタスクに対応 | テキストの解析、単純な分類、住所変更、キーワード |
code-davinci-002 | コードモデル | 高性能で多様なプログラミング言語に対応。しかし、コストが高い | コード生成、プログラムのデバッグ、最適化など |
code-cushman-001 | コードモデル | 中程度の性能でコード生成に特化 | シンプルなコード生成、基本的なプログラムデバッグなど |
詳しくはこちらのMicrosoftの解説ページ「Azure OpenAI Service モデル」をご覧ください
関数の引数以外での設定
アドインを追加したときに出てきたExcelの画面右の「LABS.GENERATIVEAI」の「Settings」からでも各種値を設定できます。
Excelの引数の設定と同様に7つのAIモデルから選べる
Excelの引数の設定と同様に0~2の値で調整可能
これは、Excelの引数のmax_tokensと同じ意味です。出力する最大のトークン数を設定します。
設定可能な範囲は引数入力時とは異なり、0~2,048
この値は、生成される単語の頻度にペナルティを与えることで、一般的すぎる単語や繰り返される単語の出現を抑制します。
値が高いほど、一般的な単語や繰り返しの単語が生成されにくくなります。これにより、より特定のトピックに沿った、独自の回答が得られることがあります。
- 値を下げると、一般的な単語や繰り返しの単語が生成されやすくなります。これは、より自然で理解しやすい文章を生成することがありますが、内容が表面的になる可能性もあります。
- 値を上げると、一般的な単語や繰り返しの単語が生成されにくくなります。これにより、独創的で特定のトピックに沿った回答が得られることがありますが、文章が不自然になることがある。
例: 「花が好きですか?」という質問に対する回答
- 低いFrequency penalty: 「はい、花が大好きです。花はとても美しいですね。」
- 高いFrequency penalty: 「確かに、植物の中でも花は特別な魅力を持っています。」
初期値0.1で、-2~2の値で調整可能です
この値は、すでに文章中に存在する単語の再出現にペナルティを与えます。
値が高いほど、既出の単語が再度生成されにくくなります。これにより、繰り返しや冗長性が減り、文章全体の多様性が向上することがあります。
- 値を下げると、既出の単語が再度生成されやすくなります。これは、文章の一貫性を保つことがありますが、冗長性や繰り返しが増えることがある。
- 値を上げると、既出の単語が再度生成されにくくなります。これにより、文章全体の多様性が向上することがありますが、一貫性が損なわれることがある。
例: 「あなたの趣味は何ですか?」という質問に対する回答
- 低いPresence penalty: 「私の趣味は映画鑑賞です。映画が好きで、映画を見るのが楽しいです。」
- 高いPresence penalty: 「私の趣味は映画鑑賞です。様々なジャンルを楽しみ、新たな視点を発見できます。」
初期値0.1で、-2~2の値で調整可能です
Frequency penaltyもPresence penaltyも相当高度なことを求めない限り、共に初期値の設定で問題ないと思います。
OpenAIのモデレーションモデルを使用して、攻撃的なコンテンツや有害なコンテンツをフィルタリングするかを設定します。
この機能を有効にすることをお勧めします。
ChatGPTに直接聞くのではなく、Excel上で実行することのメリットは、以下の2つです
- Excelに記載されている数値や文字列などの情報をそのまま使用できる
- 関数を組み合わせて連続して処理を実行できる
Excelに記載されている数値や文字列などの情報をそのまま使用できる
例えば、企業情報を出力したい場合、ChatGPTでは同じプロンプトで企業名を変えて複数回実行する必要があります。
(もしくは、欲しい企業情報をすべて入れて、細かく指示して表形式で出力するか)
ですが、Excelであればセルに記載されている情報を参照して、その情報を使ってプロンプトを実行することが可能です。
以下のように、Excelで表を作成してB列に企業名を入力します
そして、C列に「=LABS.GENERATIVEAI(B2&”の事業内容を簡潔に教えてください”)」と入力すると、
B2のセルの企業名を参照し、「Microsoftの事業内容を簡潔に教えてください」とプロンプトをChatGPTへ送信します
これをB3~B6セルまで関数をコピーすると以下のようになります。
この関数をコピーして、異なったプロンプトを送信・実行できるのがExcelのメリットの一つです。
※入力直後は以下のように、”B”ビジー!”と表示されます。これは計算中という意味です
少し待つと企業情報が返ってきます。
関数を組み合わせて連続して処理を実行できる
ExcelでChatGPTを実行するメリットの2つ目として、別のセルで出力したChatGPTの内容を受けて、さらにChatGPTに対して指示を出すことができるという点です。
例えば、下図のような関数を実行すると「しりとり」ができます
=LABS.GENERATIVEAI(
RIGHT(C2,1)&"が頭文字の名詞または固有名詞を単語のみで、1つ答えてください。
回答は日本語で、1つの単語のみです。
末尾が、「ん」「ン」または「ー」で終わる言葉は禁止。
単語は「ひらがな」もしくは「カタカナ」のみで表記。「漢字」「アルファベット」「記号」の使用は禁止。"
)
- C2セルに単語を入力する。例「りんご」
- C3セルには上記の関数が入っており、C2の単語によって回答が生成される
- C3セルの内容は、RIGHT関数でC2セルの言葉の末尾の一文字を頭文字とした名詞の単語を1つ答えるというもの
- C4セル以降は、一行上のセル(C4ならC3)の言葉の末尾を頭文字とした単語を生成する
このように、別のセルで生成された文章や言葉を使用して、次の指示が連続してできるのがメリットです。
様々なビジネスシーンで使用できますが、いくつか使用事例をご紹介します。
ポジネガ分析
ポジネガ分析とは、アンケートなどのリサーチ結果を集計する際に、自由記述(フリーコメント)の欄に書かれた内容について、良いコメント(ポジティブ)なのか悪いコメント(ネガティブ)なのかを判別する分析手法です
「ポジティブ(良い)」「ニュートラル(中立)」「ネガティブ(悪い)」の3分類に分けることが一般的です
分類した結果を集計して、円グラフなどで割合にすることで、商品やサービスを評価します
このポジネガ分析を実施する際に10件、20件程度のコメント数であれば、自分で読んで判断すればよいですが、1,000件、2,000件となってくると人が分類するには限界があります。
そこで大量のコメントを分析する際は、ChatGPTでも用いられている自然言語処理の技術を活用して実行します。
ですが、このポジネガ分析を何もないところから実行しようとすると、分析環境の構築からモデル構築、チューニングなど多くの作業が必要です。
ですが、ChatGPTを使えばこのポジネガ分析が簡単にできてしまいます。
実際にExcelを使って実施してみます。
- A列「ID」B列「コメント」C列「ポジネガ評価」を入力するフォーマットを作成します。
- コメントの列に集めたコメントを記入します(ちなみに、下図のサンプルコメントはChatGPTで作成)
- コメントの右の列(下図C列)に以下の関数を入れます
=LABS.GENERATIVEAI("次のコメントについて「良」「中立」「悪」 の 3つに分類してください。"&[@コメント])
※関数の最後の[@コメント]は表をテーブルで作成したためです。テーブルでない場合は、B2などのセル名を指定してください
関数を実行すると以下のような結果になりました。
しっかりポジネガ分析できていますね。
分かりやすくするためには、C列の結果を集計してグラフなどで割合を示すとよいです。
台本作成
プレゼンやブログなどの台本を作成する際に、フォーマットを作っておけば簡単に内容を作成できます。
例えば、ダイエットについて台本を作成するとき
- B2セルにテーマを入れる欄を作成します。
- 4行目以降にA列「番号」B列「指示内容」C列「AI回答」を入力するフォーマットを作成します。
- 「指示内容」列のB5セルに「=B2&”を実行・成功させるための3つのポイントを端的に書き出してください”」という関数を入力して、テーマに関するプロンプトを自動で作成します。
- 右の「AI回答」列のC5セルに「=LABS.GENERATIVEAI(B5)」を関数を入れて、テーマに関しての3つのポイントを表示します。
- C5セルに表示した各ポイントについて詳細を出力する指示をB6~B8セルに入力しておきます。
- C6~C8セルに「=LABS.GENERATIVEAI($C$5&”の”&B6)」のような内容の関数を入力します。
- これでフォーマットが完成したので、あとは最初に用意したテーマを入力するB2セルに出力したいテーマを入力します。すると、各セルが連動して上図のような内容が出力されます。
他にも連動して文章を作成する場合はフォーマットを作っておくと、似たような作業をスピーディに実行できます。
誤字脱字修正・翻訳作業
フォーマットを作っておけば、特定の文章を連続して修正することができます。
例えば、誤字脱字を修正した後に、英訳したい場合は以下のように対応します。
- A列「原文」B列「誤字脱字:修正後」C列「英訳」を入力するフォーマットを作成します。
- 誤字脱字を修正するために、B2セルに「=LABS.GENERATIVEAI(“次の文章の誤字脱字を修正して、正しい文章にしてください。”&A2)」の関数を入力します。
- 修正した文章を英訳するために、C2セルに「」の関数を入力します。
- これでフォーマットが完成したので、A2に文章を入力すれば、自動的に文章が修正・翻訳されます。
情報収集
現時点でChatGPTから得られる情報の精度は、それほど高くありません。
普通に間違った情報を回答することがあります。
なので、厳密な正しさを必要とする売上などの数値情報の収集には現時点では向いていませんが、企業概要などのざっくりとした情報収集においては活用できます。
例えば、ある企業の事業内容とその企業の競合情報を出力したいとき
- A列「番号」B列「企業名」C列「事業内容」D列「競合となる企業名と事業領域」を入力するフォーマットを作成します。
- C2セルに「=LABS.GENERATIVEAI(B2&”の事業内容を簡潔に教えてください”)」と関数を入力します。
- D2セルに「=LABS.GENERATIVEAI(“次の企業の競合となる企業名とその事業領域を出力してください。”&B2)」と関数を入力します。
- 入力したい企業の分、3行目以降の行数を2行目をコピーして増やします。
- あとは、B列に企業名を入力すれば、自動的にC列D列が出力されます。
いろいろ試した結果を正直に言うと、現時点のAPIで使えるGPT3シリーズの回答精度は、日本語だとまだまだ低いです。
なので、指示を英語で書くなどの対応が必要です。
(英語でプロンプトを書いて日本語で出力したいときは、最後に「Lang:jp」を入れると日本語で出力されます。)
現状ではイマイチな精度ですが、今後GPT4系以上のモデルが使えるようになれば、かなり精度も向上すると思うので、今のうちにAIをどのようにExcelに組み込むか考えておくのは悪くないと思います
また、Excelのデータをそのまま使用してデータ分析を実行しようと色々試行錯誤しましたが、まだまだ活用できるレベルで出力できなかったので、このあたりも新しいモデルの登場や今後の「Microsoft 365 Copilot」のリリースに期待です。
それでは、また!