Power Queryのtry…otherwiseで変換エラー行だけnullにする ― 更新全体を止めない最小パターン

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Power Queryで一部の値だけ変換に失敗したとき、クエリ全体を止めずにその行だけnullへ逃がす最小パターンを扱います。

検証ステータス:📘 Microsoft公式仕様確認済み・実機未確認
情報確認日:2026年10月4日。

Power Queryで数値列へ「NG」「未定」のような文字が1件混ざると、型変換ステップがエラーになることがあります。そんなときは、M言語の try ... otherwise を使うと、失敗した式だけ代替値へ置き換えることができます。

最小例

次のクエリは、数値文字列と「NG」が混在する表を作り、変換できない行だけ null にします。

let
    Source = #table(
        {"Amount"},
        {
            {"1200"},
            {"NG"},
            {"350"}
        }
    ),
    Converted = Table.AddColumn(
        Source,
        "AmountNumber",
        each try Number.FromText([Amount]) otherwise null,
        type number
    )
in
    Converted

期待する見え方は次の通りです。

AmountAmountNumber
12001200
NGnull
350350

何が起きているか

try 式 は、式が成功した値またはエラー情報を扱える形にします。otherwise を付けると、エラー時の代替値を短く書けます。

Number.FromText が成功
        ↓
変換した数値を返す

Number.FromText が失敗
        ↓
otherwise null
        ↓
その行だけ null

更新全体を止めないのが利点ですが、エラーを隠しすぎるのは危険です。実務では、null件数を数えて「想定外のデータが増えていないか」を別途確認します。

エラー行を見つけたい場合

代替値を固定文字列にする方法もあります。ただし列型との整合に注意してください。調査用なら、別のカスタム列で成功・失敗を記録する方が安全です。

each
    let
        result = try Number.FromText([Amount])
    in
        if result[HasError] then "ERROR" else "OK"

使いどころ

  • CSVに「未定」「-」が混ざる

  • Web/APIの値が一部だけ欠損する

  • 古いExcelの列に数値と文字列が混在する

  • 取り込みを止めず、後から異常件数を確認したい

注意点

otherwise null は万能な修正ではありません。本来エラーにすべきデータまで静かに通すと、集計値が小さくなるなど別の問題を生みます。異常を許容する理由と、異常件数を監視する方法をセットにしてください。

公式情報

文書情報

記事タイトル
Power Queryのtry…otherwiseで変換エラー行だけnullにする ― 更新全体を止めない最小パターン
作成日
更新日
Source URL
https://papanda925.com/?p=17962

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました