Power Automateでフローを作成する際、ExcelやSharePointリストの列名が日本語だと「動的コンテンツに表示されない」「フロー実行時にエラーが出る」といったトラブルが発生することがあります。特に会社の共有ファイルやリストでは日本語の列名が使われているケースが多く、初めて扱う方にとっては原因がわかりにくいものです。この記事では、日本語列名を参照する際の具体的な操作手順と、知っておくべき制限事項を整理します。原因の切り分け方や管理者に確認すべきポイントも含め、現場で役立つ実務的な内容にしています。
【要点】この記事で確認すること
- 最初に見る場所: フローエディターの動的コンテンツパネル、トリガーやアクションの設定画面、そして実行履歴のエラーメッセージです。
- 切り分けの軸: 使用しているコネクタ(Excel Online/SharePoint/Dataverseなど)、列名の表記(全角半角・スペース・記号)、データソースの種類(テーブルかリストか)の3つで原因を特定します。
- 注意点: 会社PCの管理者設定によっては動的コンテンツの表示が制限される場合があります。また、列名の変更はデータソース側で行う必要があり、フロー内では列名のエイリアスは作成できません。
ADVERTISEMENT
目次
日本語列名参照で発生する主な症状と原因
日本語列名が原因で起こるトラブルの症状は、動的コンテンツに列名が表示されない、フロー実行時に「列が見つからない」エラーが出る、取得した値が空文字になるなど様々です。原因を大きく3つに分けて解説します。
症状の具体例
例えば、Excel Onlineコネクタで「テーブル内に行を挿入」アクションを使うとき、日本語の列名が動的コンテンツに全く表示されない場合があります。また、SharePointの「アイテムの取得」アクションで、日本語列名を直接入力しても、実行時に「列名が無効です」とエラーになることがあります。さらに、Dataverseを使っている場合、日本語の列名が式の中で正しく評価されず、フローが途中で停止することもあります。
原因の切り分け
まず、データソースがExcelかSharePointかDataverseかで原因が異なります。Excelの場合は、テーブルとして定義されていない範囲だと列名が認識されません。SharePointの場合は、リストの列名に使える文字種に制限があり、日本語自体は問題ないが、全角と半角の混在や先頭の空白が原因になることがあります。Dataverseの場合、列名の表示名と内部名が異なると参照に失敗します。このように、コネクタごとに原因を絞り込むことが重要です。
日本語列名を正しく参照するための基本手順
ここでは、日本語列名を参照するフローを作成する際の標準的な手順を説明します。Excel Online(Business)コネクタを例に取りますが、SharePointやDataverseでも基本的な考え方は同じです。
- Power Automateにログインし、「作成」から「インスタントフロー」または「スケジュールフロー」を選びます。
- トリガーを設定した後、新しいステップを追加して「Excel Online (Business)」コネクタを選択し、「テーブル内に行を挿入」アクションを選びます。
- ファイルとテーブルを指定します。このとき、テーブル名が日本語でも問題なく選択できます。テーブルが定義されていないExcelファイルの場合は、事前にExcel側でテーブル作成が必要です。
- 「詳細オプション」を展開し、各列の項目をクリックします。動的コンテンツパネルが開いたら、日本語の列名が表示されていることを確認します。表示されない場合は、一度テーブルを閉じて再度開くか、ブラウザをリロードします。
- 日本語列名を選択すると、式として「@{outputs(‘Insert_row’)?[‘列名’]}」のように自動的にエンコードされます。この式を直接編集して列名を変更することも可能ですが、推奨しません。
- フローを保存し、テスト実行します。実行履歴でアクションの出力を確認し、正しく列名が参照されているかチェックします。
SharePointの場合は、「アイテムの取得」や「アイテムの作成」アクションで同様の手順を踏みます。SharePointリストの列名は動的コンテンツに表示されやすいですが、列の内部名が異なる場合があるため、詳細オプションで「表示名」と「内部名」を確認しておくと安心です。
日本語列名特有の制限事項と注意点
日本語列名を使う上で知っておくべき制限事項を、データソース別にまとめます。
Excelの場合
Excel Onlineコネクタでは、テーブルの先頭行が列名として認識されます。日本語列名に「#」「&」「[ ]」などの記号が含まれていると、動的コンテンツに正しく表示されないことがあります。また、列名が長すぎる(255文字以上)場合もエラーの原因になります。さらに、ExcelファイルがOneDriveかSharePointのどちらにあるかで動作が異なる場合があるため、ファイルの場所も確認してください。
SharePointリストの列名は、作成時に設定した表示名と内部名が存在します。Power Automateの動的コンテンツには表示名が使われますが、式で直接参照する場合は内部名(例:’Field_x0020_1′)を使う必要があります。日本語列名の内部名は自動的にエンコードされるため、「列名」が「Column_x0020_1」のような英数字に変換されます。この内部名を知るには、リスト設定の「列の編集」でURLパラメータを確認するか、SharePoint REST APIを利用する方法があります。
動的コンテンツでの日本語表示
動的コンテンツパネルに日本語列名が表示されない場合は、ブラウザのキャッシュが原因のことがあります。シークレットウィンドウで開き直す、または別のブラウザ(Edge推奨)を試してみてください。それでも表示されない場合は、コネクタのバージョンやテナントの設定が影響している可能性があるため、管理者に確認を依頼しましょう。
失敗しやすいパターンとその回避策
現場でよく見られる失敗パターンを表にまとめました。自身の状況に当てはまるか確認してください。
| 失敗パターン | 発生例 | 回避策 |
|---|---|---|
| 列名に全角スペースが含まれている | 「商品 名」のように全角スペースがあるとエラー | データソース側で全角スペースを半角スペースに置き換える |
| 列名の先頭が数字や記号 | 「1列目」や「&列」など | 列名の先頭を英字またはひらがな・漢字に変更する |
| Excelの範囲がテーブル未定義 | 単なる範囲だと列名が認識されない | Excelで「テーブルとして書式設定」を適用する |
| SharePointの列名が変更された | 表示名を変えても内部名は変わらないため、動的コンテンツに旧表示名が残る | 一度コネクタの接続をリフレッシュ、またはフローを再作成する |
| 式で列名を直接指定する際に引用符の誤り | 列名をシングルクォートではなくダブルクォートで囲んでしまう | 式エディターでは自動生成される引用符を使う |
管理者に確認すべき設定情報
日本語列名の参照問題が解決しない場合、管理者の協力が必要になることがあります。具体的には以下の3点を確認してもらいましょう。
1つ目は、Power Platform管理センターでのデータ損失防止(DLP)ポリシーです。コネクタがビジネスデータグループに分類されているかどうかで、動作が変わることがあります。日本語列名を含むデータソースがブロックされていないか確認してください。
2つ目は、SharePointリストの列設定です。列の種類(テキスト、選択肢など)によっては、内部名のエンコード方式が異なる場合があります。特に「選択肢」列で日本語の選択肢を使っていると、値の比較で問題が起きやすいです。
3つ目は、Excelファイルが保存されている場所のアクセス許可です。フローがファイルを読み書きできる権限を持っているか、OneDrive/ShareDriveの設定を確認しましょう。
よくある質問
最後に、日本語列名の参照に関する質問をQ&A形式でまとめます。
Q1. 動的コンテンツに日本語列名が表示されません。どうすればいいですか?
まず、データソースが正しく接続されているか確認してください。それでも表示されない場合は、ブラウザのキャッシュクリア、別ブラウザでの試行、コネクタの再接続を試します。それでもダメなら、該当の列がテーブルやリストで定義されているか確認しましょう。
Q2. フロー実行時に「Column ‘xxx’ does not exist」とエラーが出ます。
このエラーは、指定した列名がデータソースに存在しない場合に起きます。日本語列名の全角半角違いや、スペースの有無を再確認してください。SharePointの場合は内部名を調べて、それで試すと解決することがあります。
Q3. Excelのテーブルで列名を変更したら、既存のフローが動かなくなりました。どう修正すれば?
フローエディターで該当のアクションを開き、動的コンテンツを再選択します。新しい列名が表示されるので、それを選び直してください。内部的な列のインデックスが変わっていなければ、単純な再選択で直ります。
Q4. 式を使って日本語列名を直接指定する方法を教えてください。
式はシングルクォートで囲み、列名をそのまま書きます。例:@{outputs(‘Insert_row’)?[‘商品名’]}。ただし、列名に特殊文字が含まれる場合はエスケープが必要です。基本的には動的コンテンツの選択をおすすめします。
まとめ
Power Automateで日本語列名を参照する際のトラブルは、データソースの設定や列名の表記に起因することがほとんどです。Excelではテーブル定義の有無、SharePointでは内部名の確認、Dataverseでは表示名と内部名の違いに注意してください。また、動的コンテンツが表示されない場合はブラウザやキャッシュの問題も考慮し、管理者と連携して設定を確認することが重要です。この記事で紹介した手順と注意点を参考に、スムーズなフロー開発に役立ててください。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
