今回の記事では、Excel「表内に存在する行を一覧表示」アクションを利用した際のSyntaxErrorを回避する方法をお伝えします。
課題
Power AutomateにてExcelデータを取得したい場合、「表内に存在する行を一覧表示」アクションを利用するかと思います。
その際、詳細オプションの中にある「フィルタークエリ」を利用することで、あらかじめデータをフィルターして取得することができます。
( → 処理時間短縮・Power Platform要求数削減につながります)
ただ、場合によっては以下のようなエラーが発生することがあります
Syntax error at position ~. 表©鷗字㌍!
今回は、このエラーの原因・回避策をお伝えします。
エラー原因
Excelの列名に、サポートされていない文字・記号が入っていることが今回のエラーの原因です。
例1)列名にスペース・ハイフン・改行等の記号が含まれている
例2)列名が数字から始まっている
回避策1:Excelの列名を変更する
Excelの列名を修正し、サポートされていない文字や記号を避けることでエラーが解消されます。
最も簡単かつ根本的な解決策になります。
例1)Power-Automate → PowerAutomate
例2)365PowerAutomate → PowerAutomate365
(※ Excel内のすべての列名を変更する必要はなく、フィルタークエリで利用する列のみ変更いただければ結構です)
回避策2:「アレイのフィルター処理」アクションを利用する
どうしてもExcelの列名を変更できない/変更したくない場合は、Excelからデータをすべて取得した後、Power Automate側でフィルターをかけることで回避することができます。
(※ ただし、データ量が増えるほど処理時間・Power Platform要求数は増加する傾向にあります)
全体の流れ
各アクションの詳細
1. 「表内に存在する行を一覧表示」アクションでは、フィルタークエリに何も入力せず、Excelデータをすべて取得します
※257行以上のテーブルを扱う場合は、設定 > 改ページをON にして、扱う行数以上の値を入力してください。この設定をしなかった場合、256行分のデータしか扱うことができません。
2. 「アレイのフィルター処理」アクションを追加し、「差出人」に動的なコンテンツの「value」を、フィルターには希望のフィルター条件を入力します(列名を変更する必要はありません)
フローを実行してみると、問題なく動作することがわかります。
まとめ
「表内に存在する行を一覧表示」アクションのフィルタークエリ部分で「Syntax error ~. 表©鷗字㌍!」エラーが発生する場合の回避策を2つご紹介しました。
根本的に解決するにはExcelの列名を変更する必要がありますが、どうしてもExcelの列名を変更できない/変更したくない場合は「アレイのフィルター処理」アクションの利用を検討してみてください。