Kari の「AI解析」機能を活用してExcelファイルの解析を自動化させる
Copyright © 2026GotoAI株式会社gooseプロジェクトに基く
本事例の手順は、以下の環境で動作を確認しています。
- Kari: バージョン 0.7.3 Windows
- AI プロバイダー: Anthropic Claude サブスクリプション
- モデル: Claude Opus 5.5 High
説明
前のページで取得した3つの Excel ファイルは、人が見るために作られた表で、そのまますぐ分析に使える形にまだなっていません。
Excel ファイルのフォーマットの設計自由度が高い一方で、データの構造が複雑になることがあり、シートによってデータの組み立て方が違うこともあります。1つのシートでも、複数のテーブルデータを含むこともあります。
Kari の 「AI 解析」 は、この判断を AI に任せる機能です。シートの構成状況をもとに表の位置を見つけ、読み込み範囲を決めて、テーブルを作ります。
このページで扱う3つのファイルは、それぞれ違う難しさを持っています。
| ファイル | シート数 | 難しいところ |
|---|---|---|
| インバウンド消費動向調査統合_参考2 | 10 | 多段ヘッダー、3階層の行、年によって列数が違う |
| 国籍_月別_訪日外客数_通期 | 24 | 月と伸率が交互、年によって構造が4通り |
| 船舶観光上陸許可_国籍別_月次統合 | 31 | 都道府県と港の2段ヘッダー、月によって列数が違う |
生CSVデータの解析自動化でも同じ「AI 解析」を使いましたが、送られる指示文が違います。
CSV は「ファイル全体が1つの表」と決まっているため、指示は型の変換が中心でした。Excel では表がどこにあるかの特定から始まります。ブックに何枚シートがあり、各シートに表がいくつあるかは、開いてみるまで分かりません。
データコレクションを新規作成する
- 左のナビパネルの「データコレクション」にマウスを合わせ、「データコレクションを追加」をクリックします。

本例では、「データコレクション2」 を作成してデータ分析を進めます。
Excelファイルを追加する
- 「データファイル」から「データファイルを追加…」を選びます。

- 種類を選ぶダイアログで、**「Excel ファイルを追加」**を選びます。対応するのは
.xlsx.xlsm.xlsです。

- 3つのファイルを追加した状態です。

この時点では、まだテーブルはありません。Excel の場合、ファイルを追加しただけでは表は作られません。 CSV と違って「どこが表か」が簡単なルールで決まらないためです。
AI に解析を指示する
- データファイルを右クリックし、「AI 解析」 を選びます。

- 新しいチャットセッションが開き、Excel 用の指示文が自動で入力されて送信されます。

送られる指示文の要点は次のとおりです。
| 指示の要素 | ねらい |
|---|---|
まず dc_peek_file でシート一覧 | ブック全体の形を先に把握させます。シートが何枚あるかも分からない状態から始まります。 |
| occupancy bands で表の位置を判断 | 行ごとのセルの埋まり具合を手がかりにします。空白のバンドは表の区切り、先頭行のセル数が極端に少ないバンドはタイトル行か結合ヘッダーです。 |
| Excel のテーブルオブジェクトがあればその範囲を信頼 | ブックに正式な「テーブル」が定義されていれば、推測より確実です。 |
| 続けて実際のセルを確認 | バンドだけで決めさせません。中身を見て確かめる手順が入っています。 |
| シートの領域ごとに1テーブル | 1つのシートに表が2つあれば、テーブルも2つ作らせます。 |
| 型はブックのものを使い、混在した列だけ変換 | Excel はセルに型を持っています。本当に混ざっていた列だけを変換させます。 |
この指示文はファイルごとに自動生成されます。3つのファイルそれぞれで「AI 解析」を実行してください。
AI 解析を実行すると、そのブックで作成済みのテーブルはすべて破棄されます。 確認ダイアログが出ます。スクリプトを手で調整したあとに実行し直すと、その調整は失われます。
AI の解析結果メッセージを確認する
- まず消費動向調査の統合ファイルです。

参考2 のシートは1枚につき表が1つです。したがって 10シート=10テーブルになります。スクリプトのパラメータも報告されます。
skiprows=4(行1-4の表題・単位注記を飛ばす)、nrows=45(ヘッダー2行+データ43行)、usecols="B:AV"(2024-2025)または"B:BB"(2026)で空の列Aを除外。
列の構成は次のとおりです。
費目区分1費目区分2費目区分3の3列が、シートのB・C・D列にまたがる費目の3段ラベル- 以降は国籍・地域ごとに2列ずつ
<地域>_消費単価(円/人)と<地域>_構成比(%) - 地域名は5行目で2列結合になっているため、
ffill(前方補完)で組の2列目へ広げ、6行目の「消費単価/構成比」と連結
結合セルは、そのままでは1つ目の列にしか値が入りません。前方補完で2列目にも同じ地域名を配ることで、韓国_消費単価 韓国_構成比 のような列名が作られています。
地域区分がシートで異なります:2024-2025の8シートは22区分(全国籍・地域+21区分…)。2026の2シートは25区分で、メキシコ・北欧・中東が追加されています。そのため列幅が48→54列に広がっており、usecols を分けました。
表題そのものが 参考2 国籍・地域(21区分)別… と (24区分)別… で違います(表題の数字は全国籍・地域を含みません)。期をまたいで比較する際は、列位置ではなくヘッダー名で突き合わせてください。
地域名には前方補完をかけた一方で、AI は 費目区分1 にはかけていません。
費目区分1は ffill していません。列Bの「日本滞在中の」「費目別支出」「【A1】」は結合セルではなく、見出しを3行に折り返して別セルに入力したものだったため、埋めると誤った値が入ります。実質的な費目名は費目区分2(宿泊費・飲食費・交通費・娯楽等サービス費・買物代・その他)と費目区分3(内訳)に入っています。
見た目が似ている「結合セル」と「折り返して入力された見出し」を区別して扱っている箇所です。機械的に前方補完をかけていたら、費目区分1 に意味のない値が埋まっていました。
型変換についても報告があります。
2024年1-3月期のロシア2列は全43行が
-(調査値なし)でした。混在列としてpd.to_numeric(errors="coerce")で数値化した結果、全行欠損となり、値の手がかりがないため Kari 上では text(VARCHAR)と表示されています。空列として放置したのではなく、元データが全欠損です。
なお「2024-2025は【確報】、2026は【2次速報】」という速報段階の区別は行4の注記にあり、テーブルの列には取り込まれていません。
- 次に JNTO の訪日外客統計です。

24シートすべてがテーブル化され、24テーブルになります。レイアウトの判断が、行単位で説明されます。
- r1 タイトル(「〇〇年 訪日外客数(総数)」+出典)
- r2 空行
- r3 注記(「*本表で…」+単位)
- r4 ヘッダー(1月/伸率 …12月/伸率、累計/伸率)
- r5〜 データ(市場=総数・地域計・国)
- 末尾2行 注記(出典明示、確定値/推計値の断り)
ここが、このページでいちばん読む価値のある一文です。
occupancy band 上は r3〜末尾が1つの帯でしたが、セルを見ると r3 は注記、r4 がヘッダー、末尾2行は注記なので、表本体は r5 からとしました。
セルの埋まり具合だけを見れば、3行目から最終行までがひとつながりの表に見えます。 しかし中身を読めば、先頭は注記、最後の2行も注記です。バンドの判断を、実際のセルで覆しているわけです。指示文に「続けて実際のセルを確認してください」と書かれているのは、このためです。
さらに、年によって構造が4通りあることが報告されます。
| 年 | ラベル列 | 読み込み範囲 |
|---|---|---|
| 2026〜2023 | A=市場、B=内訳 | r5〜r58(nrows=54, usecols=A:AB) |
| 2022〜2020 | A=市場、B=内訳 | r5〜r57(nrows=53, usecols=A:AB) |
| 2019〜2016 | A=市場のみ | r5〜r55(nrows=51, usecols=A:AA) |
| 2015〜2003 | A=市場のみ | r5〜r48(nrows=44, usecols=A:AA) |
B列の「内訳」は、中東地域(イスラエル/トルコ/GCC6か国)や北欧地域(スウェーデン/デンマーク/ノルウェー/フィンランド)の内訳行にだけ値が入る列です。2019年以前はこの入れ子がないため列自体がありません。
24シートを「全部同じ」と決めつけていたら、2019年以前で列がずれていました。
この入れ子を2列にするために、AI は前方補完を使っています。そして、その結果どう読むべきかまで報告します。
A列が空の内訳行に親が分かるよう
市場を ffill し、内訳の全角空白インデントを strip しています。内訳行は親の内部明細なので、市場で合計すると二重計上になります(内訳が空の行だけが独立した市場です)。
集計時にどの行を使うべきかが、この一文で決まります。データ結合のページで実際に効いてきます。
年をまたいで扱う際の細かい差異も挙げられています。
-
2008・2009 のみ合計列のラベルが「年計」(他年は「累計」)。シートの表記どおりにしてあるため、年を横断して結合する際はここだけ名前が違います
-
2026年は年途中:9月〜12月が人数・伸率とも全欠損、7月・8月も一部の市場が空です。数式が空で読まれたのではなく、まだ発生していないデータです
-
2026年の脚注にある「斜体の数値は推計値である」という区別は、セル書式でしか判別できないためテーブルには反映されていません
-
最後にクルーズ客の統合ファイルです。

31シートすべてがテーブル化され、31テーブルになります。月ごとに読み込み範囲と行数・列数が一覧で示されます。
列の構成は次のとおりです。
国籍・地域(テキスト。「総数」「アジア」等の地域小計行と国別行が混在、原表のまま)、全国_総数および福岡県_博多、沖縄県_那覇のような県_港列(すべて integer / BIGINT)。
列名を 県_港 にした理由も説明されています。
長崎県(佐世保・長崎)、沖縄県(石垣・那覇・平良)のように同一県に複数港があり、県名だけでは一意にならないためです。港名だけでも一意ですが、県情報が失われます。
港の構成は月ごとに異なります(5港〜13港)。レイアウトは同一でも列が揃わないため、ご指示どおりシート横断の統合はしていません。
さらに、1か月だけの例外も報告されています。
2026年07月のみ関門が2港に分割されており、
山口県_関門(下関)と福岡県_関門(門司)の2列があります(福岡県が2列)。他の月は山口県_関門(下関)のみです。
本事例で使うのは 全国_総数 だけなので影響しませんが、港別の分析をする場合は、月ごとに列が変わる前提で設計してください。
型については、消費動向調査と対照的な報告になります。
型変換は1件も行っていません。 ブックが型を保持しており、31テーブル全てで国籍・地域列が text、人数列が BIGINT として読み込まれました。混在列はありませんでした。
このほか、判断に迷った点として次が挙げられています。
- r2 の対象月を列にしていません。 各シートの r2 に
2024-01-01形式で対象月が1セル入っていますが、シート名(=テーブル名の前置)が同じ月を表すため、ヘッダー扱いで飛ばしています - 地域小計行の扱い:「総数」「アジア」「ヨーロッパ」などの小計行が国別行と同じ列に並んでいます。区分フラグ列は追加せず原表のままにしてあるため、集計時に二重計上しないよう注意が必要です
- 2026年04月の末尾に
無国籍行があり、データ行として含まれています
AI の解析結果テーブルを確認する
- 消費動向調査のテーブルです。左のツリーに、シートごとに1つずつテーブルが並びます。

テーブル名は 2024年1-3月期_参考2.国籍地域別費目別消費単価 のように、シート名に AI が付けた内容名が続く形になります。
テーブルを開くと、費目区分1 費目区分2 費目区分3 の3列に続いて、全国籍・地域_消費単価 全国籍・地域_構成比 韓国_消費単価 韓国_構成比 …と地域ごとに2列ずつ並びます。1行目が 全体【A1】 で、消費単価 211,088.99 円、構成比 100 です。
グリッドをよく見ると、費目区分1 列は上から「全体【A1】」「日本滞在中の」「費目別支出」「【A1】」と並び、5行目以降は NULL になります。
これは元の Excel で、縦長の見出しが3行に折り返して別セルに入力されているためです。前の節で見たとおり、AI はここに前方補完をかけていません。埋めると誤った値が入るからです。
実質的な費目名は 費目区分2(宿泊費・飲食費・交通費・娯楽等サービス費・買物代・その他)と 費目区分3(その内訳)に入っています。本事例で使うのは 全体 の行と6つの大費目の行なので、費目区分1 を分類として使う場面はありません。
- 訪日外客統計のテーブルです。年ごとに1つ、24件が並びます。

テーブル名は 2026.月別市場別 のように、年がテーブル名の前置になります。列は 市場〔, 内訳〕, 1月, 1月_伸率, …, 12月, 12月_伸率, 累計, 累計_伸率 です。人数は integer、伸率は number になっています。
グリッドでは、総数 アジア計 韓国 …が 市場 列に並び、内訳 は NULL です。14行目の 中東地域 だけは 内訳 が NULL のまま地域計を表し、続く3行は 市場 が 中東地域 のまま 内訳 に イスラエル トルコ GCC6か国 が入ります。入れ子の構造が2列で表現されています。
型変換についても、重要な報告があります。
実際に効いたのは 2021〜2023 の伸率列で、「前年が0のため伸率を『-』と表記」したセルが混在していました。この『-』は欠損(NULL)になります — 0% ではなく「算出不能」の意味なので、集計時はご注意ください。
- クルーズ客のテーブルです。月ごとに1つ、31件が並びます。

2024年01月 2024年02月 …と、月がテーブル名の前置になります。列は 国籍・地域 と、全国_総数 に続いて 福岡県_博多 沖縄県_那覇 のような 県_港 列が並びます。
グリッドでは、総数 アジア と続いて インドネシア 韓国 シンガポール …が同じ 国籍・地域 列に並びます。合計行と個別の国が混在しており、訪日外客統計と同じ構造です。
クルーズ客のデータは 中国 中国〔香港〕 中国〔その他〕 のように区分されており、JNTO の 中国 香港 とは表記も粒度も違います。
この対応付けはデータ結合のページで扱います。
Human-in-the-loop のポイント
AI に任せきりにせず、次の点は人が確認してください。
-
テーブル数が想定と合うか数える
参考2は1シート1表なので10テーブル、訪日外客統計は24テーブル、クルーズ客は31テーブルになるはずです。数が合わない場合、表の切り出しに失敗しています。 -
表の切り出し位置を数件だけ開いて確かめる
AI は occupancy band と実際のセルを突き合わせて範囲を決めていますが、最終的な判断は推定です。特に「末尾2行は注記」のような末端の判断は、1件開いて目で確かめる価値があります。最終行に注記が混ざっていれば、集計値が狂います。 -
シートごとに構造が違う前提で確認する
消費動向調査は2026年から区分が3つ増え、訪日外客統計は年によってラベル列の本数が変わり、クルーズ客は月によって港の列が変わります。「全シート同じ」と報告されていても、その根拠を読んでください。 -
「-」の意味を確認する
同じ「-」が、ファイルによって「該当なし」とも「算出不能」とも読めます。NULL として同じに見えても、集計では区別が必要です。 平均を取るときに除外してよいのか、0 とみなすべきなのかは、元データの注記を読んで決めてください。 -
階層ラベルの列を点検する
費目区分1のように、見出しを折り返して入力した結果がそのまま列になります。AI が前方補完をかけたか、かけなかったかを含め、分析の前にこの列が分類として使える状態かを確認してください。 -
合計行と内訳行を区別する
訪日外客統計とクルーズ客のどちらも、総数アジア計と個別の国が同じ列に並びます。そのまま合計すると二重に数えます。人口データの事例と同じ構図です。 -
AI 解析のやり直しは破壊的である
再実行すると既存のテーブルは破棄されます。スクリプトを調整した場合は、先に控えを取ってください。
使用する LLM により、表の切り出し位置やテーブルの分け方が変わります。なぜその範囲にしたのかの説明を読み、納得できない箇所は解析スクリプトを直接確認してください。
参考資料
本ページで解析しているデータは、前のページで取得した3つの公開データです。画面キャプチャは出所を明示した上で引用として掲載しています。AI が判断した読み込み範囲・列構成・型は、GotoAI が Kari の動作例として生成したものであり、観光庁・日本政府観光局・法務省が作成・公表したものではありません。
消費動向データ
- 資料名: インバウンド消費動向調査(旧 訪日外国人消費動向調査)「参考2 国籍・地域別 費目別1人1回当たり旅行消費単価(パッケージツアー参加費内訳含む)」
- 提供元: 観光庁(国土交通省)
- URL: https://www.mlit.go.jp/kankocho/tokei_hakusyo/gaikokujinshohidoko.html
- 閲覧日: 2026年10月15日
- 利用条件: 同ウェブサイトの利用規約に従います。出典:国土交通省ウェブサイト(上記 URL)。
訪日外客数データ
- 資料名: 訪日外客統計「国籍/月別 訪日外客数」(時系列推移表)
- 提供元: 日本政府観光局(JNTO)
- URL: https://www.jnto.go.jp/statistics/data/visitors-statistics/
- 閲覧日: 2026年10月15日
- 利用条件: 同局の定めにより、出典元として「日本政府観光局(JNTO)」を明記のうえ利用しています。
クルーズ客数データ
- 資料名: 出入国管理統計「港別 船舶観光上陸許可を受けた外国人の国籍・地域」(月次表)
- 提供元: 法務省(出入国在留管理庁)/政府統計の総合窓口(e-Stat)
- URL: https://www.e-stat.go.jp/stat-search/files?toukei=00250011
- 閲覧日: 2026年10月16日
- 利用条件: 同サイトの利用規約に従います。出典:法務省「出入国管理統計」。
- 本サイトで引用した外部の情報は、Kari の利用例を説明するためのものです。それらの情報の正確性や最新性について、本サイトは保証しません。引用元の内容は予告なく変更・削除されることがあります。
- 本サイトで示した AI の出力は、記載の検証環境で実際に得られたものです。ただし、その出力の正確性や有用性について、本サイトは保証しません。AI の出力は、使用する LLM や設定、実行のたびに変わることがあります。
- 本事例は Kari の動作を示す例示であり、算出される数値は観光庁の公表数値と異なる可能性があります。
- AI が判断した表の切り出し位置は推定です。 集計に用いる前に、元の Excel ファイルと突き合わせて確認してください。
- 本ページで扱うデータには速報値および部分期間のデータが含まれます。分析結果は取得時点のものとして扱ってください。
- 画面キャプチャは、掲載時点のバージョンの Kari で取得したものです。お使いのバージョンでは表示が異なる場合があります。
- 引用元の各機関・団体は、本サイトおよび Kari と提携・推奨関係にはありません。