ADVERTISEMENT

【Excel】Power Queryで月初の日付だけエラーになる時の変換ステップ確認

【Excel】Power Queryで月初の日付だけエラーになる時の変換ステップ確認
🛡️ 超解決

ExcelのPower Queryで日付データを扱う際、特定の日付だけエラーになる現象は意外とよく発生します。特に月初(1日)のデータだけがエラーになる場合、原因はデータ型の変換方法やロケール設定、またはクエリ内の処理ステップにあることが多いです。本記事では、Power Queryで月初の日付がエラーになる代表的な原因と、その確認手順を詳しく解説します。この記事を読めば、自分で原因を特定し、適切な対処を行えるようになります。

【要点】この記事で確認すること

  • 最初に見る場所: クエリエディタの「適用したステップ」リストです。特に「型の変更」や「カスタム列の追加」のステップに注目します。
  • 切り分けの軸: 端末側のロケール設定と、Power Query内で明示的に指定したロケールの違いです。また、元データの日付形式がテキストか日付型かも重要な判断基準です。
  • 注意点: 会社PCで地域設定を変更する場合は、管理者に確認してから行ってください。Power Queryのロケール設定はクエリごとに指定できるため、端末全体の設定変更は推奨されません。

ADVERTISEMENT

1. 日付のデータ型変換が原因でエラーになるケース

Power Queryはデータを読み込む際に、自動的にデータ型を推測して変換します。しかし、日付の表記がシステムのロケールと一致しない場合、変換に失敗することがあります。特に月初の日付だけエラーになる理由として、元データの日付が「2024/1/1」のように年・月・日の順序で書かれている場合でも、ロケールによって解釈が異なるからです。例えば、日本語ロケールでは年/月/日と解釈されますが、英語(米国)ロケールでは月/日/年と解釈されます。そのため、2日以降のデータは月と日が逆転して誤った日付に変換される可能性がありますが、1日だけは偶然正しく変換されることがあります。ただし、エラーではなく誤った値になるケースです。実際に「月初だけエラー」となるのは、元データの1日が特別な書式(例:「1日」「1st」など)で記載されている場合や、年が省略されている場合です。

1-1. テキストから日付への変換でロケールが原因となるパターン

よくあるパターンは、元データが「2024/1/1」のようなテキスト形式であり、Power Queryがこれを日付に変換する際に、クエリのロケール設定が日本語以外になっている場合です。この場合、1日だけは月と日が同じ値(1)なので正しく変換されるように見えますが、他の日は月と日が逆転します。ただし、「月初だけエラー」と感じるのは、他の日は変換できても値が間違っていることに気づかず、1日だけ変換に失敗してエラーとして表示されるケースです。実際には、2日以降も不正な値になっている可能性があります。

1-2. 月初の日付だけ異なる書式で入力されているケース

業務データでは、月初の日付だけ「1日」や「1st」のような表記になっていることがあります。これは手入力やシステムの出力形式の都合によるものです。例えば、日付列に「2024/1/1」「2024/1/2」…と並んでいるはずが、1日だけ「1/1/2024」と異なる区切り文字で書かれている場合、Power Queryが一貫した変換ルールで処理できずエラーになります。このようなケースでは、元データの整形が必要です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. クエリの変換ステップに問題があるケース

Power Queryの「適用したステップ」の順序や内容によって、特定の日付だけエラーになることがあります。例えば、日付列に対してカスタム列を追加し、Date.StartOfMonth関数を使って月初日付を生成する場合、元の日付がnullや不正な形式だとエラーになります。特に、元データに月末日付はあるが月初日付が欠損している場合など、月初だけ計算できないケースがあります。

2-1. カスタム列での月初計算が原因となる例

業務で「売上月」などの集計を行うために、日付から月初日付を算出するカスタム列を追加することがあります。このとき、元の日付列に欠損値や文字列が混ざっていると、Date.StartOfMonth関数がエラーを返します。特に、月初の日付だけ元データが欠損している場合、その行だけエラーが発生します。また、条件列で「日=1」の判定をする場合、日付がまだテキストのままであるとエラーになることもあります。

2-2. 型の変更ステップのタイミングミス

クエリのステップ順序も重要です。例えば、最初にテキスト列としてデータを取り込み、後から「型の変更」で日付に変換する場合、その変換前に他の操作(フィルターや条件列の追加)を行うと、変換が正しく行われないことがあります。特に、月初の日付だけ異なる形式で入力されている場合、フィルターや条件列がその行だけエラーを発生させることがあります。

3. 具体的な確認手順と修正方法

ここでは、Power Queryで月初の日付エラーを調査し、修正するための手順を説明します。以下の手順に従って進めてください。

  1. エラーの発生箇所を特定する – Power Queryエディタを開き、右側の「適用したステップ」でエラーアイコンが表示されているステップを確認します。エラーのある行をクリックすると、プレビューでエラーの内容が表示されます。
  2. 元データの書式を確認する – エラーが発生している月初の行の元データを、ExcelのソースシートやCSVファイルで直接確認します。日付がテキストとして入力されているか、特殊な書式(「1日」など)になっていないかをチェックします。
  3. 変換式を確認する – 「型の変更」ステップがある場合は、そのステップを選択し、数式バーに表示される変換式を確認します。例えば、Table.TransformColumnTypes(ソース,{{"日付", type date}})のような式です。ここでロケールを指定していない場合、システムのロケールが使用されます。
  4. ロケールを指定して再変換する – 変換式でロケールを明示的に指定することで、問題が解決することがあります。例えば、Table.TransformColumnTypes(ソース,{{"日付", type date}}, "ja-JP")のようにします。これにより、日本語ロケールで日付が解釈されます。
  5. カスタム列や条件列を確認する – カスタム列でDate.StartOfMonthを使用している場合は、元の列にnullや不正な値がないか確認します。必要に応じて、try式を使ってエラーハンドリングを行います。
  6. データソースを整形する – 元データの書式が統一されていない場合は、テキスト変換や置換を事前に行います。例えば、「1日」を「1」に置換してから日付に変換します。

ADVERTISEMENT

4. 状況による比較表

以下の表は、月初の日付エラーが発生する状況を整理したものです。自分の環境に当てはめて確認してください。

状況 月初データの例 他の日付の例 エラー有無 主な原因
元データが「2024/1/1」形式で統一 2024/1/1 2024/1/2 エラーなし(ただしロケールによって値が変わる可能性あり) ロケール設定の不一致
元データの月初だけ「1日」という表記 1日 2024/1/2 エラーあり 書式の不一致
カスタム列でDate.StartOfMonthを利用 元データがnull 元データが有効な日付 エラーあり(月初行のみ) 欠損値の処理
型の変換前にフィルターを適用 テキスト形式のまま 同様 エラーあり ステップ順序の問題

5. 失敗パターンと注意点

よくある失敗パターンとして、エラーの原因を端末の地域設定だけに絞って変更してしまうことが挙げられます。Power Queryはクエリごとにロケールを指定できるため、端末全体の設定を変える必要はありません。また、エラーが発生した行だけを削除してしまうと、データの整合性が失われる可能性があります。さらに、カスタム列でエラーハンドリング(try式)を追加しないまま複雑な計算を行うと、後続のステップに影響が及びます。これらの点に注意してください。

6. 管理者へ確認する情報

会社PCでPower Queryを使用する場合、以下の点を管理者に確認する必要があります。

  • 端末の地域設定を変更できる権限があるかどうか。多くの企業では一般ユーザーが変更できないように制限されています。
  • データソースの日付書式を統一してもらえるかどうか。可能であれば、システム側で標準化してもらうことが最も効率的です。
  • Power Queryのロケール設定をクエリ内で変更することは、個人の操作範囲内で問題ないことを確認してください。

7. よくある質問(FAQ)

Q1. なぜ月初の日付だけエラーになるのですか?
A. 最も多い原因は、月初の日付だけ元データの書式が異なることです。例えば、「1日」のような文字列が混ざっている場合や、年が省略されている場合などです。また、ロケール設定が原因で1日だけは変換できるが他の日は誤った値になるケースもあります。

Q2. エラーを無視して続行しても問題ありませんか?
A. エラー行をそのままにしてデータを読み込むと、その行のデータが欠損または不正な値になります。集計などに影響が出るため、必ず原因を特定して修正してください。

Q3. ロケールを変更してもエラーが解決しない場合はどうすればよいですか?
A. 元データの書式を確認し、テキスト変換や置換で統一する必要があります。また、カスタム列を使用している場合は、try式でエラーハンドリングを追加してください。

Q4. 会社PCで地域設定を変更してもよいですか?
A. 管理者の許可なく変更することは避けてください。Power Query内でロケールを指定する方法で対処することをおすすめします。

まとめ

Power Queryで月初の日付だけエラーになる場合、まずは変換ステップと元データの書式を確認することが重要です。日付変換のロケール指定や、カスタム列での計算ロジックを見直すことで、多くの問題は解決します。会社PCでは端末全体の設定変更ではなく、クエリ内でロケールを指定する方法を選んでください。原因を特定するために、適用したステップを順に確認し、エラーの内容を詳細に調べましょう。適切な対処を行えば、データの整合性を保ったままPower Queryを活用できます。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT