技術情報ブログ
SharePoint
2021.07.16

なぜPower AppsのSortByColumnsでSharePointの日本語列はエラーになるのか?

なぜPower AppsのSortByColumnsでSharePointの日本語列はエラーになるのか?
池内佑哉

こんにちは、アーティサン株式会社の池内佑哉と申します。

この記事では、Power Apps のキャンバスアプリで SharePoint リストのデータを SortByColumns 関数 を使ってソートする際に、日本語列でエラーが発生する原因とその対処法についてわかりやすく解説します。

特に SharePoint の内部列名と外部列名の違いに着目し、実際の設定変更例を交えて手順とポイントを丁寧に説明します。

Power Apps × SharePoint の機能課題を解決したい場合、まずは内部列名の設計改善やソート要件の見直しについてご相談ください。

私は、Microsoft社が提供するPower AppsやSharePointを用いて業務の自動化・効率化を目指されているお客様のご支援をしています。

 

今回は、SharePointの仕様がPower Appsとかみ合わずエラーになる、という内容のお話です。

 

Power Appsには、SharePointのリストを基にキャンバスアプリを自動作成する機能があります。

この機能を利用することで、レコードの追加、編集、削除機能が設定されたアプリが自動的に作成されます。

そのため、初めてPower Appsに触る方でも、標準的な機能が設定されたアプリを作成・利用することができます。

もちろん、そのまま使ってもよいですが、ほとんどの場合、ちょっと機能を追加したい、使い勝手を良くしたいなどの要望が出てきます。

しかし、SharePointのリストとPower Appsには、普段触らない方はほとんどがハマるといってもよいほど、混乱を招く仕様があります。

この仕様は製品がリリースされた当初から存在する、いわば“SharePoint/Power Appsあるある”なのですが・・・、

私自身も初めての案件対応の際、うっかりこの仕様に引っ掛かり悩んだことがあります。

 

弊社には、エンドユーザー様ご自身で運用していきたいという要望を多くいただいています。

そういったエンドユーザー様を始め、これからPower AppsやSharePointでの学習を始めようとされている方に、ぜひとも覚えていただきたい内容だと考え、今回取り上げてみました。

 

Power Apps キャンバスアプリによる現象の再現(SortByColumns関数)

それでは、本題に移ります。

今回は、Power Appsのキャンバスアプリにて、SortByColumns関数を使い、ソート順を[タイトル]順から[発行日]順に変更するケースについて考えます。

まず、SharePointリストに[発行日]という列を追加し、Power AppsにてSharePointリストをデータソースとして指定したキャンバスアプリを作成します(図1)。

SharePointリストに[発行日]列を追加

SharePointリストに[発行日]列を追加

 

次に、Power Apps キャンバスアプリ内にて、SharePointリストのデータを[発行日]順にソートするように変更します。

具体的には、Power Apps キャンバスアプリ内のBrowseGallery1のItemsにある、SortByColumn関数の値を変更します。

初期値では、ソートする列を指定する引数(第2引数)に“Title”が入っており、ソート順は昇順になっています。

このソート対象を”Title”から”発行日”に書き換えます(図2)。

想定であれば、データの表示が[発行日]順になるはずですが、エラーが発生してしまいます。

Power Apps キャンバスアプリのSortByColumns関数で引数の値を変更すると、エラーが発生

Power Apps キャンバスアプリのSortByColumns関数で引数の値を変更すると、エラーが発生

SortByColumn関数のエラー内容

SortByColumn関数のエラー内容

エラー内容より、[発行日]列が存在しないことがわかります。正しく列名を指定しているはずなのに、なぜこのようなエラーが発生するのでしょうか?

 

エラー原因(SharePointリストの内部列名と外部列名)

SharePointのリストで列を追加する際、列名を日本語などのマルチバイト文字で登録すると、見かけはそのまま登録されますが、実は内部ではエンコードされた値で登録されます。

※スペースなどの半角記号も同様にエンコードされます。

Power Apps キャンバスアプリのSortByColumns関数の2つ目の引数は、「見えている列名」(以降「外部列名」)ではなく、システム内部の列名(以降「内部列名」)を参照する必要があります。(図4)

Power Apps キャンバスアプリでは、SharePointの内部列名を参照する

Power Apps キャンバスアプリでは、SharePointの内部列名を参照する

一般的にPower Apps以外のプログラム(JavasScript, C#, Power Automate等)でSharePointの列を指定する場合は、原則内部列名を指定します。

一方で、Power Appsで提供されている多くの関数は、外部列名でも動作するように機能が提供されていますが、SortByColumnsなど、列操作に関する一部の関数に関しては、内部列名を指定する必要があります(ダブルクォーテーションで文字列として指定する必要がある関数は、すべて内部列名を指定します)。

自動でPower Apps キャンバスアプリを作成時した際、SortByColumnsの引数には、“Title”が設定されており、SharePoint上では“タイトル”として表示されています。

読めてしまう分、直感的にエラーの原因に気づきにくい=内部列名を意識しない

これが混乱を招きやすいポイントです。

 

このエラーは、日本語だけではなくハングルなどのマルチバイト文字を使用したときにも発生します。

これを回避するためには、次のような方法があります。

 

対策(SharePointはシングルバイトで作成する)

SharePointリストで項目を作成する際は、一度列名をシングルバイト(英数字)で作成し、内部列名を英語で登録した後、外部列名を日本語に変更するという方法で回避できます。

 シングルバイトで作成(内部列名を英語で登録)

 外部列名を日本語に変更

 

※内部列名は後から変更できないので、最初からシングルバイトで作成することが重要です。

 

ではSharePointリストの項目を実際に修正しましょう。

先ほど作成したSharePointリストの[発行日]列を一度削除し、[IssueDate]で登録した後、外部列名を[発行日]に変更しました。

また、Power Apps キャンバスアプリのSortByColumns関数では、第2引数に“発行日”(外部列名)ではなく、“IssueDate”(内部列名)を指定しました。

以下を見ていただくと、エラーは発生しませんでした。

SharePointリストの項目をマルチバイトにて作成した際のPower Apps キャンバスアプリ画面

SharePointリストの項目をシングルバイトで作成し、その値をPower Apps キャンバスアプリで指定。

 

Power Appsアプリ上でデータを入力し、日付順にソートされていることを確認します。

Power Apps キャンバスアプリ上でデータが日付順でソートされていることを確認

Power Apps キャンバスアプリ上で日付順にソートされている

 

まとめ

今回紹介したエラーの他にも、SharePointは日本語などのマルチバイト入力がネックになるケースがあります。

例えば、SharePointリスト等を新規作成する時、タイトルをシングルバイト(英数字)で記載すれば、その文字列をそのままURLとして反映させることができます。

一方で、日本語のみで記述すると[List1][List2]…のような表記になります。(これも後から変更できません!)

 

なお、SharePointを裏側で使用するMicrosoft Teamsも、チーム名を日本語で入力してしまうと、メールアドレスやサイトURLがエンコードされてしまいます。

 

こうした様々なケースを踏まえると、

プログラムでSharePointのリストを使うことが明らかである場合には、シングルバイト(英数字)で命名するのが望ましいです。

 

とはいえ、現在運用されているのSharePointリストの内部列名は変更できませんし、一般利用者がこの仕様を意識するケースはほとんどありませんので、日本企業の多くの組織では、Power Appsなどのアプリ作成がしづらい設計になっていることが多いです。

ですので、Power Appsアプリ作成の障壁を下げるよう、管理側から利用者に対して「Power AppsやPower AutomateでSharePointリストを使用する際の注意点」として、この点について案内することをお勧めします。

 

おまけ(Power Appsのラベルでは内部列名・外部列名はどちらとも指定可能)

Power Apps キャンバスアプリのラベルを使用する際、TextプロパティにSharePointリストの項目名を表示させる場合は、外部列名、内部列名どちらでも指定可能でした。(図7,8参照)。

Power Apps キャンバスアプリにて内部列名を指定

Textプロパティに内部列名を指定

Power Apps キャンバスアプリにて外部列名を指定

Textプロパティにに外部列名を指定

SortByColumns や SharePoint リスト設計にお困りですか?
アーティサンの技術チームが最適な実装方法を一緒に設計します。

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2026.04.22

ソリューション内で異動・退職者のPower Apps/Power Automateなどを引き継ぐには?所有者変更の手順と注意点を解説

2026.04.15

SharePoint:『リンクのコピー』は危険?権限トラブルを防ぐ推奨運用を解説

2026.04.08

技術ブログ100本書いてみたら、想像以上に得るものがあった話

2026.04.01

社内に聞く人がいない「孤独なDX」を解決!アーティサンの内製化支援サービス

2026.03.25

SharePointの便利なURLパラメータ活用術|ヘッダー削除・リスト絞り込み・メンテナンスモード

データ構造.Net Core Test ExplorerレスポンシブUpdateContext承認フロー送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職Slide showMicrosoft365サイトの種類OpenAPI請負契約効率化Power Platform CLI業務キー月額定額PV数 増やす共同所有者1行テキストモデル駆動型アプリSortByColumns関数Dataverse for TeamsDynamics 365ロードマップフォームメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー比較移行要件定義MCPサーバー総合評価型入札資料作成開発手順複合キー委任問題権限トラブル主要な所有者複数行テキストPower AppsTypeScriptitem関数入門技術form差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot Studio社内ポータル多言語化サイト構成FAQエージェントデジタルトランスフォーメーション初心者向け拡張機能データ整合性Delegationアクセス権限環境変数選択肢Power PlatformHTMLGoogle Maps初心者Itエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsグループウェアMUI権限設計AIチャットボットプロポーザル方式ハウツービルドデータベース設計サブスクリプション型支援ファイルパスクラシック画面日付SharePointEF CoreMarker Clusterer中級者DXインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグエンゲージメントMultilingualデータ移行実運用官公庁システム画像挿入プロジェクト作成ユニークキーMVP共有設定ソリューションエクスポート整数ExcelマイグレーションRANK()関数キャンバスアプリノウハウカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleDLPポリシー地方自治体MLJSON書式保守性デジタル化推進複数レコードPCFギャラリー一意制約技術支援情報漏洩対策権限管理データ型Power AutomateFramework CoreDynamics 365 SalesDatePicker情報技術componentVBAフローの種類選択肢列環境sortガバナンス登録日StudioTestCopilot Studiot共有リンクテンプレート化DX推進テーマカラーPDF変換業務システムURLパラメータ技術ブログ 書き方コマンドバーカスタマイズ組織変更C#Attribute directivesMicrosoft TranslatorDropdownメッセージIDダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AICanvas自治体DXレポート化サイト複製作り方ダークモード資料自動作成キャンバスアプリ 違いメンテナンスモードエンジニア ブログ メリットSharePoint管理センター注文管理アプリattributeO/Rマッパーマーカークラスタリングライブラリviewメールコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AITest Studio生成AI自治体APIPnP PowerShellページ承認Formulasプロパティフロー設計Power Apps 導入並べ替えブログ 継続 コツDLPサブグリッドvalidationazure sql databasetailwindcssビューfirst()関数dialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテスト事例HTTP リクエストカスタムスクリプトドキュメント管理カラーセットテンプレート活用Power Apps 比較ヘッダー非表示技術力向上権限管理ベストプラクティスDataverse テーブルローコードCase式マルチテナントアクセス制限nestTips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicenseテストスタジオ活用ワーケーション業務効率化IT管理カラーユニバーサルデザイン自動化事例モデル駆動型 とはリスト フィルタ文章力 鍛え方野良権限部署AngularHTTP Requestドロップダウンメニューノーコード入れ子新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール使い方サイトブランド化名古屋ファイル保存申請システムアプリデザインNode.jsシステム構築便利アウトプット 重要性Teams ファイル共有リレーションシップAccessCSSBreakpointObserver承認動的リスト変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズ基本知識フォントカスタマイズ体験記エンティティワークフロー自動化UI/UXVisual Studio CodeAlternate Key野良アプリ対策IT エンジニア 転職OneDrive1対多InfoPathxUnitメディアクエリリマインドcollection検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークPowerAutomateブランドセンター感想フォルダ構成設定アクセシビリティPCF代替キーCoEブログ モチベーションつながり参照多対多MatTable.Net Core 3.1スマホSetコレクションMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンX-SP Designテーマ作成チームサイトMicrosoft Learn Docsアジャイル開発Wordテンプレート環境構築重複チェック内製化コンサルティングネタ切れ 対策システムカスタマイザーER図Angular MaterialVSCodePCForAll複数の添付ファイルセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可Artisanスライドショーデザイン拡張コミュニケーションサイトカスタムコネクタ準委任契約業務自動化カスタムコンポーネントGUIDITサポートAI ブログ 活用Connection Reference入門編
PageTop
ページトップに戻る