GoogleスプレッドシートやExcelでの集計作業、グラフの作成、簡単な統計解析などは、ビジネスパーソンの必須スキルだ。
発展目覚ましいChatGPTやGeminiなどの大規模言語モデルとのチャットができるAIアプリは、英文の翻訳やメールの作成など、テキスト作成タスクに革命をもたらしたが、Excelワークを代替するには至っていない・・・はずだった。
2024年5月のOpenAIのChatGPTのアップデートで、基本的なデータ分析作業をすべてAIがやってくれてしまうレベルの革命的なデータ分析機能が実装された。
また、Googleが開発するAIチャットのGeminiでも、全く負けていないどころか、グラフの高度なカスタマイズなど、さらに優れたデータ分析機能が利用できるようになっている。
本記事では、「Gemini Advanced」で利用できる、Googleスプレッドシート、CSVファイル、Excelファイルなどを読み込んでデータ分析を行う機能を、実用例とともに詳細に解説する。
AIが登場する以前は、GoogleスプレッドシートやExcelに苦手意識があっても、自社データを分析したければ、自分でピボットテーブルやグラフの作り方を習得するしかなく、どうしても学習コストが高かった。
また、たとえ得意な人であっても、毎月の定例報告等々のために同じようなグラフを何度も作っていて、自動化できないものかとうんざりしている人も多いはず。
そんな人々を救済してくれるのが、GeminiやChatGPTによるデータ分析だ。
AIによるデータ分析は、既に相当高い品質に達しており、プレゼン資料に挿入するグラフ作りなどは、かなりの程度代替できる。
この記事を参考に、最新技術の片鱗をぜひ感じていただきたい。
分析するサンプルデータの用意
どのようなデータでも分析可能と思われるが、Gemini Advancedの主要な機能を紹介するために、無料で公開されており、内容が理解しやすいデータセットを探してきた。
tableauのコミュニティに公開されているスーパーストアの売上データセットのサンプルファイルを利用する。
これは.xls
エクセル形式の表で、アメリカ各地におけるスーパーストアへの注文情報、売上金額、利益金額などがまとまったデータだ。
Geminiでは、Googleドライブと接続することで、Googleスプレッドシートのデータを直接読み込むことができる。
Googleスプレッドシートの読み込み機能も試したいので、上記のSample - Superstore.xls
ファイルをGoogleスプレッドシートにインポートしておいて、これをGeminiから呼び出すことにする。
Geminiの無料プランと有料プラン
Google版のChatGPTというべきAIチャットアプリ「Gemini」は、Googleが開発する大規模言語モデルのGemini 1.5やGemini 1.0を利用できる。
Googleアカウントさえ持っていれば、下位モデルのGemini 1.0 Proを無料で利用できるが、上位モデルのGemini 1.5 Proをはじめ、今回紹介するデータ分析機能や、ファイルのアップロード機能など、より高度な機能を利用するには、「Google One AI プレミアムプラン」に加入する必要がある。
同プランは、月々2,900円で、Geminiの有料版である「Gemini Advanced」が利用でき、Googleドライブの容量2TBなどがおまけでついてくる。
ライバルのOpenAIのChatGPTも、AnthropicのClaude 3も、有料プランは月額20ドル(約3,000円)なので、ほぼ同額で、Googleドライブまでおまけでついてくると考えると、それなりにお得感がある。
また、記事執筆時点(2024年5月)では、最初の2ヶ月間、無料でトライアル利用ができる上に、2ヶ月後にキャンセルすれば一切課金が発生しないので、とりあえず使ってみることをお勧めする。
以下では、Gemini Advancedを有効にしていることを前提にして、データ分析機能を利用する方法を解説していく。
GeminiへのCSV, Excel, スプレッドシートの読み込み
Gemini Advancedでは、チャットウィンドウの右端に、ファイルや画像をアップロードするための「+」ボタンが表示される。
これをクリックすると、画像、WordやPDFファイルをアップロードしたり、Googleドライブ上に保存されているファイルを指定することができる。
今回は、上述のSample - Superstore.xls
ファイルをGoogleスプレッドシートにインポートして、そのスプレッドシートを指定することでデータ分析を進めていく。
Geminiにデータに関する質問に答えてもらう
ファイルを添付して、まずはGeminiにファイルの中身にどのような項目が含まれるのかを説明してもらう。
スプレッドシートを指定した状態で、以下のプロンプトを打ち込んだ。
添付の売上データの分析を行います。Ordersシートにはどのような項目が含まれますか。
すると、「分析しています…分析用のコードを生成しています」というメッセージが表示され、データの読み込みと解析が始まった。
しばらく待っていると、データに含まれる列名と、その列に入っているデータのタイプ(数字、文字、日付など)、その列の意味の日本語解説が出力された。
仕組みとしては、この裏側で、Gemini 1.5 ProがPythonのコードを書いて、データの解析を行なっている状態である。
右上にある「コードを表示」ボタンをクリックすると、Gemini Advancedが裏側で行なっていたPythonの処理を覗き見ることもできる。
Geminiがユーザーの見えないところでせっせとコーディングと解析作業を行い、ユーザーには結果の表示と解説だけを提供してくれるので、ユーザーにPythonコードの知識が一切なくても大丈夫だ。
大規模言語モデルのテキスト生成能力を活かすことで、プログラムコードを生成して、データの分析まで実装してしまうとは、AI技術の進歩には驚かされるばかりである。
Geminiでのデータ分析とグラフの作成
データに含まれる列の概要が分かったので、今度はGeminiに集計作業を行わせ、その集計結果を、表形式とグラフ形式で出力させてみる。
以下のプロンプトで、スーパーストアの売上金額を、アメリカの北部・南部・東部・西部の4地域別にグルーピングして、合計させてみた。
地域別に売上を集計してください。
すると、見事に一発で、売上金額が大きい順にソートした上で、棒グラフと、グラフの下になった集計テーブルが表示された。
本来であれば、スプレッドシートのピボットテーブル機能を使って、Region列を行としてSales列の合計値を表示、といった手作業をポチポチ行わねばならないところ、「地域別に売上を集計してください。」というシンプルなプロンプト文を打ち込むだけで、一発でテーブルとグラフが入手できるのは革命的だ。
報告書やプレゼン資料に挿入するちょっとしたグラフであれば、Gemini Advancedのデータ分析機能を使って、サクッと画像を出力して作業完了、という夢のような状況が、既に現実になってしまっている。
Geminiが生成したグラフのカスタマイズ
さらに嬉しいことに、生成されたグラフを、インタラクティブな操作で細かくカスタマイズすることが可能である。
マウスカーソルを合わせて、グラフをドラッグすると(クリックした状態で上下左右に動かすと)、表示領域を移動させることができる。
また、マウスのスクロールを使うと、縮尺を変更することができ、グラフを拡大したり、グラフを縮小したりといったことまで可能だ。
さらに、右下にある「グラフをカスタマイズ」というボタンをクリックすると、グラフのタイトル、X軸のラベル、Y軸のラベルのテキストを変更することができる。
英語で生成されてしまったタイトルなども、日本語に修正することが可能である。
こうして望み通りのタイトルと、縮尺を決定できたら、右下の「画像としてダウンロード」ボタンをクリックすれば、そのままPowerPointやスライドに挿入できるグラフの画像ファイルを入手できる。
ここまでの自由自在なカスタマイズは、ChatGPT Plusで利用できるデータ分析機能よりも、さらに優れていると思う。
当サイトでも過去に紹介したChatGPTのデータ分析機能でも、インタラクティブなグラフ操作が可能ではあるものの、今のところは、色を変更するなどのシンプルな操作しかできない。
ChatGPTでグラフのタイトルやラベルを変更させるには、別途プロンプトで指示して、またゼロからグラフを作り直してもらう必要があり、とても面倒だった。
マウススクロールで自由に縮尺を変更でき、しかも拡大縮小に合わせてX軸・Y軸の数値の範囲もスムーズに変更されるGemini Advancedの機能は、かなり実用的だ。
また、ChatGPTで作成したグラフでは日本語も文字化けするため、Geminiで任意のタイトルやラベルテキストを日本語で指定できるのはより利便性が高い。
Geminiによる集計表のスプレッドシートへのエクスポート
また、グラフだけでなく、集計結果のテーブルも使いやすい。
Gemini Advancedでテーブルデータを表示させると、テーブルの下部に「Googleスプレッドシートにエクスポート」というメニューが表示され、これをクリックすると、Googleスプレッドシートに新規ファイルが作成される。
Googleスプレッドシートを開くと、プロンプトがファイル名となった集計結果の表が保存されている。
これにより、Geminiに集計作業を行わせた上で、その結果をスプレッドシートとして保存して、色を変えたり、ソートしたり、また別の集計作業を行ったり、といったことができる。
ChatGPTなどでは、テーブル形式のデータを、一度CSVファイルなどとしてダウンロードする必要があるので、Geminiの方が、よりデータ分析のワークフローを効率的に短縮することができる。
Geminiでのより複雑なピボットテーブル・グラフの作成
ここまではシンプルな合計値の集計作業を行ってきたが、せっかくなので、より複雑なピボットテーブルの作成作業を行ってみる。
以下のステップを踏む必要があるグラフの作成を、以下のプロンプトで指示してみた。
- Order Date(注文日)列を月単位でグルーピング
- Region(地域)列でグルーピング
- 月単位かつ地域別のSales(売上金額)を合計
- これを時系列の折れ線グラフとしてビジュアライズ
注文日を月ごとにまとめ、各月の地域別売上額を集計してください。
すると、見事に一発で期待した通りの折れ線グラフが表示された。
注文日の列が文字列として認識されていたところ、日付データとして読み込み直すことまで、的確にGeminiが自己判断して実行していることが分かる。
今回は集計結果のテーブルは表示されず、いきなりグラフ一発の出力であった。
このように、Geminiからの回答がグラフ画像のみだったとしても、グラフ右下の「表で表示」ボタンを押すと、グラフ生成に用いられた集計表を閲覧することができる。
さらに、そうして表示させた元データを、Googleスプレッドシートに出力することも可能なので、生成されたグラフが間違っていないかをテーブルデータでも確認できる。
また、Gemini Advancedの画面上で行えるカスタマイズを超えて、グラフの見た目を詳細にカスタマイズせねばならない時などに、スプレッドシート上で自分でグラフを作り直すこともできる。
ChatGPTでは、生成されたグラフから、元になっている集計表を入手することはできないので、この点でもGemini Advancedの方がユーザーの利便性が圧倒的に高い。
Geminiに分析アイディアを考えてもらう
Geminiは、単に集計やグラフの作成をするだけではなく、データの内容を踏まえた会話に応じることも可能だ。
そもそもどのような分析をすべきかすら思いついていない場合であっても、Geminiに行うべき分析を提案してもらうことで、アイディアをもらうことが可能だ。
データ分析の知識や経験が浅い人であっても、Geminiに相談しながら分析を進めていくことで、新たなビジネスインサイトの発見につながるかもしれない。
例えば、Geminiに「新しい店舗の出店戦略を考える」という目的を伝えた上で、手持ちのデータにどのような分析を行えば、新店舗の出店戦略の検討に資する知見が得られるかを相談してみた。
新しい店舗の出店戦略を検討するにあたり、この過去のデータで行っておくべき分析を提案してください。
すると、顧客セグメント別の分析、地域と利益の傾向の分析、顧客のRMF分析など、取りうる手段を多数掲示してくれた。
ここまでくると、すべての人にデータ分析のアドバイザーが1on1で手助けしてくれるようなものだ。
店舗の売り上げデータや、会社で保有している顧客データがあったら、とりあえず個人情報など機微なデータを削除したGoogleスプレッドシートを作成して、Gemini Advancedに相談しながら色々な分析を実行してみると良い。
AIの発展によって、Excelの関数も不要、ピボットテーブルの使い方も学ぶ必要なし、グラフの作成経験がなくてもよしと、データ分析のあらゆるハードルが下がっている。
Geminiのデータ分析機能のトラブルシュート
Gemini Advancedのデータ分析機能を色々試している中で、よく遭遇したエラーが、特に初回のデータ読み込み時に、Pythonコードにエラーが発生した上で「私はそのようにプログラムされていません」と言われてしまうというものだ。
ただ、特に元のファイルを修正することなどなく、何度か新しいチャットを作成してやり直すと、そのまま問題なく分析が開始できた。
特にファイルの読み込み時には、拡張子や文字コードなどの関係で、列名が表示できないなどの何らかのエラーが発生する可能性が高く、そこでつまづいてしまうと先に進めないことがあるものと思われる。
分析したいデータの種類や内容によって対策が変わりうるので、絶対的な対応方法はないが、一般的には、以下のようなことを行なっておいた方が読み込みの成功率が上がるだろう。
- ExcelやGoogleスプレッドシートに、複数のタブが含まれている場合、分析対象とするタブ以外は消してしまう
- ExcelやCSVファイルはGoogleスプレッドシートにインポートする
- データの中に日本語や全角の記号が含まれているとエラー発生リスクが上がるので、できれば列名やセル内のテキストを英語にしておく
- 英語化が面倒であれば、「これは日本企業の売上データで、日本語のデータを含む列が複数存在するCSVファイルです。」など、日本語が入っていることを予め伝えておく
- 文字列以外にも、「『問合せ日』列には、問い合わせがあった日付が2024/5/25という形式で入っています。」のようにデータ形式をあらかじめ伝えておく
Geminiなどの大規模言語モデルは、データの中身に関する事前知識を持っていないので、読み込みに失敗するたびに文字コードの変更など手を替え品を替えやり直し、答えに辿り着けるまでトライアル&エラーを続けてくれる。
あらかじめ文字コードなどの情報を与えることで、無駄なトライアル&エラーの回数を削減できるので時短になるし、何度も繰り返しエラーが出てGeminiが諦めてしまうことを防ぐことができる。
誰でもデータ分析のアシスタントを持てる時代
Gemini Advancedのデータ分析機能を使えば、複雑なピボットテーブル・ピボットグラフの作成作業も、日本語で指示をするだけで容易に実行できる。
社会人であれば資料やレポートに入れるグラフを、学生であればレポートに掲載するグラフを、ExcelやGoogleスプレッドシートの利用経験が浅くても、瞬時に作成することができてしまう。
データ分析の目的をしっかりGeminiに伝えれば(ex. 店舗の売上向上、顧客の購買パターン)、アップロードしたデータから考えられる分析手法の候補そのものを、Geminiが考えてくれる。
ユーザーは、生成されたテーブルやグラフから、意思決定に必要な情報を読み取る解釈力と、データ分析の目的をセットする能力だけあれば良い。
すべての人類が、プログラミングどころかExcelの知識すらなくても、データの集計やグラフ化が得意なAIアシスタントの力で、データが産み出す知見にアクセスできるようになる。
これからより一層データ分析の民主化が進むことになりそうだ。
また、Gemini Advancedならではの利点として、GoogleドライブやGoogleスプレッドシートとの連携がある。
Googleスプレッドシートで管理している顧客データを、毎月集計して定例レポートを作成する、といった作業も、AIに実行させることができる。
これまでは、ピボットテーブルの使い方が分かるExcel知識のある社員の間で引き継いでいかなければならなかった作業が、Gemini Advancedに与える「プロンプト文」を引き継いでいけば再現できてしまうので、ExcelやGoogleスプレッドシートを取り巻く環境もどんどん変わっていきそうだ。