【UiPath特集】Case 4:Excelの読み込みトラブル~「列が見つかりません」の犯人はヘッダーだ!~

こんにちは!UiPath メンターです。

Excelデータを読み込んでループ処理を実行したら、いきなりこんなエラーが出たことはありませんか?

Column ‘商品名’ does not belong to table DataTable.

「えっ?Excelを開いて見たら、ちゃんと『商品名』って列があるよ!?」

そう、人間には見えているのです。
しかし、ロボットの目には「全く別の列名」として映っている可能性があります。
原因の多くは、Excel特有の「結合セル」や「2行ヘッダー(親亀子亀)」、あるいは「開始位置のズレ」です。

ロボットが表をどう認識しているかを知り、正しく導いてあげましょう。

診察1:ロボットには「1行目」がどう見えている?

UiPathの [範囲を読み込み] は、デフォルトでは「指定された範囲の一番上の行」を項目名(ヘッダー)だと思い込みます。

例えば、Excelの1行目に「2024年度 売上管理表」というタイトルがあり、実際の表(項目名)が3行目から始まっている場合。
何も指定せずに読み込むと、ロボットは「2024年度 売上管理表」という名前の列が1つあるだけと勘違いします。
これでは、3行目にある「商品名」列を探そうとしても「そんなものはない」と怒られるわけです。

処方箋A:開始位置をズラしてあげる

表がA1セルから始まっていない場合は、読み込み範囲を明示的に指定します。

手順

  1. [範囲を読み込み] アクティビティの [範囲] 欄を見ます。
  2. 空欄(またはシート名のみ)になっている場合、シート全体を読みに行こうとします。
  3. ここに、実際の表が始まるセルを指定します。
    例:ヘッダーが3行目から始まるなら "A3" と入力。

これだけで、ロボットは「ああ、A3から下がデータなんだな」と理解し、A3にある「商品名」を正しくヘッダーとして認識します。

💡 メンターからのアドバイス:Excel内で示す

手入力が不安な場合は、ここでもモダン機能の出番です。
範囲の右にある + > [Excel 内で示す] を使い、実際の表のデータが含まれる範囲(または開始セル)をマウスで選択してしまいましょう。

処方箋B:ヘッダーが2行ある(結合されている)場合

これが一番厄介です。
1行目に「上期」「下期」、2行目にそれぞれ「売上」「利益」「売上」「利益」とあるようなケースです。

ロボットは「複雑な結合ヘッダー」を理解できません。
無理に読み込むと、列名が「売上」「売上_1」のように勝手に変換されたり、エラーになったりします。

解決策:ヘッダーなしで読み込む

こういう時は、あえて「ヘッダーはない(ただのデータだ)」とロボットに嘘をつきます。

  1. [範囲を読み込み] のプロパティで、[ヘッダーあり (Has Headers)] のチェックを外します。
  2. 範囲は、データ部分だけでなく項目名の行も含めて指定します。

こうすると、ロボットは列名を勝手に Column0, Column1, Column2 という番号で管理します。
データを処理するときは、CurrentRow("商品名") ではなく、CurrentRow(2) (0から数えて3番目の列)のように番号で指定すれば、どんな複雑な表でも確実にデータが取れます。

処方箋C:余計なスペースに注意

意外と多いのがこれです。

  • Excel上の見た目:商品名
  • 実際のデータ:商品名  (後ろに全角スペースが入っている!)

ロボットは生真面目なので、「商品名」と「商品名 」は別の言葉として扱います。
エラーが出たら、Excelのセルの後ろをダブルクリックして、見えないスペースが隠れていないか確認してみてください。

まとめ:ロボットの視線に合わせよう

  • 「列が見つかりません」は、読み込み開始位置(範囲)がズレていることが多い。
  • 表が途中から始まるなら、“A3” のように開始セルを指定する。
  • 複雑な表は [ヘッダーあり] のチェックを外して、列番号(インデックス)で操作するのも手。

⚠️ 注意:シート全体 vs 範囲指定

モダンデザインの [Excel ファイルを使用] で [範囲を読み込み] を使う際、範囲を「空欄」にすると「使用されている範囲すべて」を自動判別します。
しかし、表の遥か下のほう(例:Z1000セル)にゴミデータが入っていると、そこまで巨大な表として読み込んでしまい、メモリ不足になることがあります。
動作が遅いな?と思ったら、Ctrl + End キーでExcelの最終行を確認してみましょう。

次回は最終回、Case 5「デバッグのやり方」
「なぜか途中で止まるけど、原因が分からない」
そんな時に、ロボットの動きをスローモーションで見たり、変の中身を覗き見たりする「探偵グッズ(デバッグ機能)」の使い方を伝授します!

タイトルとURLをコピーしました