自律型エクセルAIエージェントは残念なエクセルを救うか?~エクセルファイルそのものをAIで動かす~

【AIエージェント:AI x RPAで規則性のないエクセルを自動的に直す仕組みを構築してみた】

前回の記事では「RPA×AIの最強コンビを生み出すCopilotコードインタプリター活用のすすめ!

にてAIエージェント作成における強力な武器を紹介しました

今回の記事では、エクセルそのものを動かすAIエージェントをPower Automateフローで作成しました

以下のGIF画像はエージェントが、マスタデータをもとに不規則な入力を直しているところです

AIエージェント実行動画

上のGIF動画では不規則な入力を「右上に一旦表示」したマスタデータにてAIエージェントが修正しています

例えば、B2セルの「FeelCodeLab」という入力をマスタデータに従って「株式会社FeelCodeLab」に変えています

それでは、実際のAIエージェントの動きを確認しましたので次にいきます

ここからは「自律型エクセルエージェントの可能性」と「技術的な問題の概要」について書いていきたいです

今回の作成した内容

ご紹介するのはSharepointのドライブにアップロードされたエクセルファイルを対象とするAIエージェントです

AIエージェントはファイルから客先名を読み取り、マスタを参照して正しい客先名を自動で書き込みます

以下の画像がアップロードしたエクセルファイルです

データ

上記の画像内の客先名は、実は事前に決められたものではありません

客先マスタ

ですので、AIとRPAを組み合わせたAIエージェントで修正しようというわけです

エクセル作業にAIエージェントを使う意義

前述の内容で「え、リストを使えばいいじゃん?」と思った方も多いと思います

そうはいっても、リストが設定されていないまま放置されているエクセルファイルも結構みてきました

エクセルは自由度が大きく、多くの方に利用されています

一方で、自由度が高い分、不規則で「データ活用」「自動化」につながらないエクセルも多く存在します

ここまでの話を聞いて

「マクロを使えば?」

と思う人思われた方もいると思います

確かにそういう面もあるにはあるのですが、そもそもデータが不規則だとマクロは使えないのです

その点、

今回のようなAIエージェントでは「データを読み込み」「解釈」「書き込み」を行ってくれます

現時点では、私もまだまだ研究中ではありますが、利用価値が結構あるのではと思います

技術的な問題

あくまで「今の時点」での話なのですが、技術的に難しいかどうかの判断は困難です

あまりこれまで、馴染みのない技術なので、最初は小難しく感じるのは間違いないです

ただし、AIチャットを活用しながらであればそれなりに作れるとは思います

さて、

技術的な難易度についての感想を述べたところで、全体的なフローの流れを説明します

以下のとおり、大きく4つの流れになります

  • ①エクセルの読み込み(JSON形式にする)
  • ②マスタファイルの読み込み(これもJSON形式にする)、
  • ③で①②を組み合わせて更に正しいデータに直したJSON形式のデータを作成します
  • ④にてMicrosoft GRAPH APIを使用したアクションでエクセルに書き込みます

今回はPower Automateを使用していて、CopilotStudioのエージェントは使用していません

何故かというと、フローとのデータの受け渡しがうまくいかない可能性が高いからです

あとは、日本語との相性の悪さも感じました

ですので、今回はPower Automateで完結した方が早いと判断しました

ここからは技術的なポイントだけ紹介したいと思います

AI プロンプト → 作成 → JSON の解析

AI プロンプトの text 出力は、見た目は JSON でも中身はただの文字列です


そのままでは Power Automate は配列として扱えません

そこで必要になるのが、

  • 作成(Compose)
  • JSON の解析(Parse JSON)

の 2 ステップです。

Compose で text を 1 つの値として固定し、Parse JSON で “文字列 → JSON” に変換する。

この流れを理解していないとForEach が勝手に増えたり、Excel に書き込めなかったり、Graph API が 400 (エラー)を返したりするなど、散々な目に遭います

Graph APIの扱い

最終的にはAIプロンプトで作成したJSONデータをGraph APIを使用してエクセルファイルに書き込みます

まだ比較的に新しい技術なのでなじみがあまりない方も多いと思います

そもそもGraph APIとは?

Microsoft 365 のすべてのデータにアクセスするための “公式の入り口(玄関)” です。

以下のように、Microsoft 365 の世界にはかなり多くのサービスが存在します

  • OneDrive
  • SharePoint
  • Excel
  • Outlook
  • Teams
  • Planner
  • To Do
  • Entra ID(ユーザー情報)

これらをバラバラに扱うのは大変なので、
Microsoft は 「全部まとめて操作できる統一 API」 を作りました。

それが Microsoft Graph API です。

エクセルにデータを書き込む際

今回は「HTTP要求を呼び出します」アクションを使用しました

「HTTP要求を呼び出します」アクション

上の画像の通り、こちらは要求URLの文法がかなり複雑です

ようするに、ループ処理でJSONを読み込みながら処理するわけですが、下の要素の組み込みが必要です

  • DriveId
  • DriveItemId
  • シート名
  • セル範囲

また、Body部分(要求の本文)も間違いやすい点があります

{
  "values": [
    [
      "@{items('それぞれに適用する')?['normalized']}"
    ]
  ]
}

上記のように式を”:クォートで囲む必要があります

Power Automate は JSON を文字列として扱ってしまい、Graph API がパースできず 400 を返します。

<まとめ>

とにかくまだAIエージェントについては研究です

ただ、業務で主として使われるエクセルソフトに直接AIを活用できるのはメリットが大きいです

またエクセル処理をクラウド上で完結できるのも大きいです

今回は、ファイルアップロードをトリガーにしましたがメールの添付ファイルも自動処理ができます

つまりデスクトップの世界へファイルをダウンロードしなくても処理が完結できるのです

この技術を使いこなすには「JSON」「Graph API」を使用する必要があります

どちらも小難しい技術ですが、読者の皆さんが簡単に使えるようにテンプレートを作成していきたいと思います

にほんブログ村 ネットブログ ChatGPT・生成AIへ
にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ IT技術評論・デジタル評論へ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です