メインコンテンツまでスキップ

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つのファイルは、それぞれ違う難しさを持っています。

ファイルシート数難しいところ
インバウンド消費動向調査統合_参考210多段ヘッダー、3階層の行、年によって列数が違う
国籍_月別_訪日外客数_通期24月と伸率が交互、年によって構造が4通り
船舶観光上陸許可_国籍別_月次統合31都道府県と港の2段ヘッダー、月によって列数が違う
CSV の AI 解析との違い

生CSVデータの解析自動化でも同じ「AI 解析」を使いましたが、送られる指示文が違います。

CSV は「ファイル全体が1つの表」と決まっているため、指示は型の変換が中心でした。Excel では表がどこにあるかの特定から始まります。ブックに何枚シートがあり、各シートに表がいくつあるかは、開いてみるまで分かりません。

データコレクションを新規作成する​

  • 左のナビパネルの「データコレクション」にマウスを合わせ、「データコレクションを追加」をクリックします。

データコレクションを追加する

本例では、「データコレクション2」 を作成してデータ分析を進めます。

Excelファイルを追加する​

  • 「データファイル」から「データファイルを追加…」を選びます。

データファイルを追加する

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

Excel ファイルを追加を選ぶ

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

3つの Excel ファイルが追加された状態

この時点では、まだテーブルはありません。Excel の場合、ファイルを追加しただけでは表は作られません。 CSV と違って「どこが表か」が簡単なルールで決まらないためです。

AI に解析を指示する​

  • データファイルを右クリックし、「AI 解析」 を選びます。

データファイルを右クリックして「AI 解析」を選ぶ

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

Excel 用の AI 解析の指示文

送られる指示文の要点は次のとおりです。

指示の要素ねらい
まず 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区分)別… で違います(表題の数字は全国籍・地域を含みません)。期をまたいで比較する際は、列位置ではなくヘッダー名で突き合わせてください。

ffill を「しなかった」判断にも注目してください

地域名には前方補完をかけた一方で、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〜2023A=市場、B=内訳r5〜r58(nrows=54, usecols=A:AB)
2022〜2020A=市場、B=内訳r5〜r57(nrows=53, usecols=A:AB)
2019〜2016A=市場のみr5〜r55(nrows=51, usecols=A:AA)
2015〜2003A=市場のみ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つずつテーブルが並びます。

消費動向調査から作成された10テーブル

テーブル名は 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件が並びます。

訪日外客統計から作成された24テーブル

テーブル名は 2026.月別市場別 のように、年がテーブル名の前置になります。列は 市場〔, 内訳〕, 1月, 1月_伸率, …, 12月, 12月_伸率, 累計, 累計_伸率 です。人数は integer、伸率は number になっています。

グリッドでは、総数 アジア計 韓国 …が 市場 列に並び、内訳 は NULL です。14行目の 中東地域 だけは 内訳 が NULL のまま地域計を表し、続く3行は 市場 が 中東地域 のまま 内訳 に イスラエル トルコ GCC6か国 が入ります。入れ子の構造が2列で表現されています。

型変換についても、重要な報告があります。

実際に効いたのは 2021〜2023 の伸率列で、「前年が0のため伸率を『-』と表記」したセルが混在していました。この『-』は欠損(NULL)になります — 0% ではなく「算出不能」の意味なので、集計時はご注意ください。

  • クルーズ客のテーブルです。月ごとに1つ、31件が並びます。

クルーズ客から作成された31テーブル

2024年01月 2024年02月 …と、月がテーブル名の前置になります。列は 国籍・地域 と、全国_総数 に続いて 福岡県_博多 沖縄県_那覇 のような 県_港 列が並びます。

グリッドでは、総数 アジア と続いて インドネシア 韓国 シンガポール …が同じ 国籍・地域 列に並びます。合計行と個別の国が混在しており、訪日外客統計と同じ構造です。

国籍の区分が JNTO と一致しません

クルーズ客のデータは 中国 中国〔香港〕 中国〔その他〕 のように区分されており、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 と提携・推奨関係にはありません。