アーティサン株式会社
  • Excel
  • Power Automate
  • Power Platform
  • SharePoint

Power AutomateでExcel→SharePointのタイムゾーン差異と対処法(第4回)

Power Automateを使ってExcelデータをSharePointリストにインポートする際、ExcelとSharePointで扱う日時(datetime)形式の違いによって、意図せず時間がずれてしまう現象があります。
本記事では、+9時間先行して表示される原因の仕組みと、タイムゾーン変換アクションを使った具体的な対処手順をわかりやすく解説します。
業務自動化を安定運用するための実践的テクニックとして役立つ内容です。

この記事を書いた人
小刀稱知哉

小刀稱 知哉ことね ともや

SharePoint Power Platform全般 Copilot Studio 技術アドバイス・教育支援

Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!

2025 Microsoft MVP(Power Apps・Power Automate) 2026 Microsoft MVP(SharePoint・Power Automate)
PL-200 PL-300 PL-400 PL-600 MS-700 AZ-104 AZ-305 SC-200 SC-100

Power Automate でのExcelとSharePoint間の日時処理でお困りですか?
フロー設計の最適化やエラー対策について、実際の運用シーンに即した相談を承ります。

「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第4回です。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。

また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

前回はPower AutomateにてExcelデータをSharePointリストにインポートするフローを作成しましたが、 実行したところ、ExcelデータとSharePointリストのdatetime列に差異(SharePointリストのdatetime列が9時間先行)が発生していました。

第3回目の内容はこちらを参照ください。

Power AutomateでExcel→SharePoint実行エラーの内容と対処法(第3回)

今回は、発生した現象の原因とその対処方法についてお伝えしていきたいと思います。

 

発生した現象の原因と対策

まずは発生した現象を再度確認します。

Power AutomateでExcelデータをSharePointにインポートする際の前回発生した現象

datetime列に着目してください。(画像上部がExcel、下部がSharePointリスト)

SharePointリストのdatetime列が9時間先行していました。

 

原因について順を追って説明します。

前提として、SharePointのdatetime列は、サイトコレクションのタイムゾーン設定に基づいて、タイムゾーンの値を考慮した日時を表示します。 (今回の場合は、JST(日本標準時)環境の日時を表示します。

また、SharePointではタイムゾーンがない日時データは、時差ゼロ=UTC(協定世界時)として日時を扱います。

Excelのdatetime列(シリアル値)にはタイムゾーンが含まれておりません。

よって、Excelのdatetimer列をそのままSharePointにインポートすると、その値はUTCとして扱われます。

JSTはUTCから+9時間の時差があるため、タイムゾーンの設定に基づき SharePointリストのdatetime列が9時間先行して表示されておりました。

 

対処法としては、「項目の作成」アクションの前に「タイムゾーンの変換」アクションを追加することでタイムゾーンを調整します。

対処法としてタイムゾーンの変換

変換元のタイムゾーンを「UTC」、変換先のタイムゾーンを「UTC -9:00」に設定しています。

これは、Excelのデータから-9時間した値をUTCとして認識させることを意味しています。

ちなみに、「取得した値を9時間減算する」という処理は「時間からの減算」アクションでも対応可能ですので、どちらのアクションを使用しても同様の結果を得ることができます。

Excelのデータから-9時間した値をUTCとして認識させる

 

フローの実行

それでは修正したフローを再度実行しましょう。

保存したExcelファイルの横にある三点リーダーから「自動化」→「作成したフロー名」をクリックすることで実行できます。

修正したフローを再度実行

今度こそ、想定した通りのデータをインポートすることができました!

実行結果はデータをインポートすることができました

 

まとめ

実際に作成すると、いろいろと考慮事項などはありましたが、アクション数としてはたったの5つです。

フロー内アクションの詳細

フロー作成にあたり、躓いた箇所とその対応方法をまとめてみました。

  • SharePointリストExcelのDate列の形式が異なっていた。

    「表内に存在する行を一覧表示」アクションの日付形式に関する取得方式を、シリアル値からISO 8601形式に変更した

  • SharePointリストのdatetime列が9時間先行していた。

    「タイムゾーンの変換」アクションにて-9時間した値をUTCとして認識させた

 

今後の構想

ここまでで、必要最低限な機能を作成することができました。

しかし、実際の運用を想定すると、以下の内容は気になるところではないでしょうか。

  • 動的にExcelデータを取得するには?

    今までは、事前にSharePointに保存したExcelデータ(=静的なExcelデータ)からPower Automateを起動していました。

    しかし実際の運用では、「メールに添付されたExcelデータを自動的にインポートする」や、「SharePointにExcelデータが保存された際、自動的にインポートする」という要望もあると思います。

    そのような場合には、動的にExcelデータを取得する必要があります。

  • 表データの行数が多い場合は?

    Excelの表データを取得する際には、「表内に存在する行を一覧表示」アクションを用います。このアクションでは、既定で256行分のテーブルデータしか取得することができません。

    よって、256行より多いデータを取得する際には、少し工夫が必要となります。

  • 表データの中に異なる形式の値がある(例:日付に文字列が入っている)場合は?

    SharePointリストに値を追加する「項目の作成」アクションでは、読み込んだデータが異なる形式の場合、エラーとなります。そうなると、その行のデータはインポートされません。

    さらに本アクションがエラーの場合、後続のアクションは実行されず、想定外の挙動となることがあります。

    それを防ぐための考慮も必要となってきます。

次回以降は、上記で挙げた項目を中心に作成したフローを作り込んでいきます!

ここまで読んでいただき、ありがとうございました。

 

【このシリーズの過去回一覧】

 

Excel→SharePoint連携の日時・データ形式エラーを未然に防ぐには、設計最適化が鍵です。
設計レビューや改善提案をご希望の場合はこちらからお気軽にご相談ください。

 

こちらも合わせて読みたい