Power BIでデータを扱っていると、必ずと言っていいほど出会うのがNull(ヌル)です。売上や数量が入っていない、日付が欠けている、キーが空でリレーションがつながらないなど、Nullが残ったままだとグラフが崩れたり、合計が期待と違ったり、フィルターで「(Blank)」が出てしまったりします。そこで重要になるのが、目的に応じてNullを削除する、または別の値に置き換えるという判断です。この記事では、power bi null削除をテーマに、Power Query(データ変換)とDAX(モデル・集計)それぞれの現場で使える手順を、なるべく迷わない形で整理します。
1. まず押さえる:Nullと空白と0は別物
Nullは「値が存在しない」状態です。似ているものに、空文字(””)や半角スペースだけの文字列、0、そしてDAXでよく出てくるBLANKがあります。見た目が空っぽでも意味は違います。
・Null:そもそも入っていない(欠損)
・空文字:文字としては入っているが内容がない
・0:数値として0が入っている(欠損ではない)
・BLANK:DAXやモデルの世界での「空」。Power QueryのNullが読み込まれるとBLANKになることが多い
この区別を無視して一律に削除すると、欠損を「0」と誤解させたり、未入力なのに「売上0」と見せてしまったりするなど、分析の意味が変わります。つまり、power bi null削除は操作の話であると同時に、データの意味を守る話でもあります。
2. Power QueryでNullを削除する(行を消す)
Power BI Desktopで最も定番なのは、Power QueryでNullを含む行をフィルターで除外して、モデルに入る前に整える方法です。
2-1. 画面操作:特定列がNullの行を除外
-
ホーム タブから「データの変換」を開く
-
対象クエリで、Nullが入っている列を選ぶ
-
列のフィルター(▼)を開く
-
一覧に「null」または空白項目が出るのでチェックを外す(「null ではない」を選べる場合はそれでもOK)
-
適用すると、その列がNullの行だけが消える
この方法は直感的で、作業履歴(適用したステップ)として残るため、後から見返しやすいのがメリットです。
2-2. 複数列にまたがるNullの扱い
よくあるのが「A列がNullでもB列が入っていれば残したい」「主要キー列がNullの行だけ落としたい」というケースです。フィルターは列単位で効くため、まず“どの列のNullを削除対象にするのか”を決めます。
・キー列(顧客ID、伝票番号など)がNull:基本は行ごと削除候補
・説明列(備考など)がNull:削除しないことが多い
・数値列(売上など)がNull:削除か置換かは目的次第(後述)
2-3. Mコード例:条件でNull行を削除
画面操作は内部的にMコードを作ります。複雑な条件はMで書くと明確です。
例:売上がNullではない行だけ残す
= Table.SelectRows(前のステップ, each [売上] <> null)
例:顧客IDと日付の両方が入っている行だけ残す
= Table.SelectRows(前のステップ, each [顧客ID] <> null and [日付] <> null)
例:全列がNullの“空行”だけ落としたい(列数が多いときに便利)
= Table.SelectRows(前のステップ, each List.NonNullCount(Record.FieldValues(_)) > 0)
3. Power QueryでNullを置き換える(削除ではなく整形)
Nullを消す方法は「行を削除」だけではありません。集計や可視化の要件によっては、Nullを別の値に置き換えた方が正しい場合があります。ここもpower bi null削除で迷いやすいポイントです。
3-1. 画面操作:Nullを0や文字に置換
-
対象列を右クリック
-
「値の置換」
-
検索する値に null を指定(画面によっては空欄指定、または詳細オプション)
-
置換後の値に 0 や「不明」「未入力」などを指定
数値列なら0、カテゴリ列なら「不明」といった置換がよく使われます。ただし、0にすると「欠損」ではなく「0として確定した値」に見えるので、レポートの読み手が誤解しないか必ず確認します。
3-2. Mコード例:Nullを0に置換
3-3. 空文字やスペースを先にNullへ寄せる
「Nullを削除したのに効かない」原因の一つが、実はNullではなく空文字やスペースだった、というパターンです。特にCSVやExcel由来の列で起きやすいです。
対策としては、次の順番が安定します。
-
トリム(前後の空白を除去)
-
空文字(””)をNullに置換
-
その上でNullを削除または置換
この流れにすると、見た目が空のデータを統一的に扱えます。
4. DAXでNull(BLANK)を扱う:削除ではなく“計算で無視・補完”
モデルに読み込まれた後、Power BIの集計ではNull相当がBLANKとして振る舞うことが多いです。ここでは「データを削除する」というより、「計算結果に出さない」「表示を整える」というアプローチになります。
4-1. メジャーでBLANKを0に変える(見た目を揃える)
例:売上メジャーが空なら0を返す
売上_0補完 = COALESCE([売上], 0)
COALESCEは先頭から順に空でない値を返します。0補完を統一すると、カードや表で空欄が並ぶストレスが減ります。
4-2. 割り算でBLANKや0除算を避ける
例:単価 = 売上 / 数量 のような計算は、数量がBLANKや0だとエラーや不自然な結果になります。
単価 = DIVIDE([売上], [数量], BLANK())
DIVIDEは安全で、3つ目の引数に代替値を指定できます。代替値を0にするかBLANKにするかは、表示要件で決めます。
4-3. BLANKの行を集計対象から外す
「未入力データを集計から除外したい」場合は、フィルター条件にISBLANKを使います。
例:顧客IDが空の行を除外して件数を数える
有効件数 =
COUNTROWS(
FILTER(取引, NOT(ISBLANK(取引[顧客ID])))
)
このようにDAXで制御すると、モデル全体をいじらずに、レポート単位で意図した集計が作れます。
5. ビジュアル上でNullを見せない(最短で整える方法)
「データ加工はしたくないが、見た目からNullを消したい」という場合は、ビジュアルのフィルターが最短です。
・グラフを選択してフィルターペインを開く
・対象列を「このビジュアルのフィルター」に入れる
・条件を「空白ではない」にする(is not blank)
テーブルやマトリクスの「(Blank)」行を一旦消したいときに有効です。ただし、これは表示上消しているだけで、モデル上のデータは残ります。後で別のページや別のビジュアルで再び出てくる可能性がある点に注意してください。
6. リレーションで出る(Blank)の正体と対策
ディメンション(商品マスタ、顧客マスタなど)とファクト(売上明細など)を結ぶとき、キーがNullだったり、マスタ側に存在しないキーがファクトにあると、Power BIは自動的に「不明なメンバー」を表す(Blank)行を作ります。これはバグではなく、リレーション整合性を保つための仕組みです。
対策は主に3つあります。
-
ファクト側のキーNull行をPower Queryで削除する
分析対象にならないなら、最もスッキリします。
-
マスタ側に「不明」レコードを追加する
キーとして例えば -1 や “UNKNOWN” を用意し、ファクトのNullをそのキーに置換します。こうすると(Blank)ではなく「不明」として可視化でき、原因追跡もしやすくなります。
-
DAX側で表示名を整える
(Blank)の見た目が嫌なだけなら、ディメンションの表示列を作り、BLANKのときは「不明」と表示する、という逃げ方もあります。ただし根本原因(キー欠損)が残るので、データ品質改善の観点では1)か2)が望ましいです。
7. どれを選ぶべき?目的別の判断基準
power bi null削除で迷うときは、「そのNullは欠損なのか、意味のある未入力なのか」を基準にすると整理できます。
7-1. 行ごと削除が向くケース
・テストデータやヘッダー行が混ざっている
・主要キーがNullで、分析の単位が成立しない
・空行が紛れ込んでいる
この場合は、Power Queryで落とすのが基本です。モデルが軽くなり、以後の計算もシンプルになります。
7-2. 置換が向くケース
・売上がNull=未計上で、0として扱いたい(業務ルールが明確)
・カテゴリがNullでも「不明」として分類したい
・可視化で空欄をなくして見やすくしたい(ただし意味の説明ができること)
置換は便利ですが、意味を変えやすいので「置換した理由」をレポート設計側で説明できる状態にしておくと安全です。
7-3. DAXで補完・無視が向くケース
・元データはそのまま残し、レポートごとに表現を変えたい
・計算の都合でBLANKを避けたい(割り算、前年差など)
・ページやビジュアル単位でNullを見せたくない
データガバナンスの都合で変換を最小限にしたい組織では、DAXとフィルターでの制御が現実的です。
8. よくあるつまずきとチェックポイント
最後に、Null処理で詰まりやすいポイントをまとめます。
・Nullを削除したのに残る:空文字やスペース、またはエラー値の可能性。トリムと空文字→Null置換を試す
・置換したら型が崩れた:数値列に文字を入れると型変換エラーになる。列のデータ型を先に決める
・0補完したら平均や率が変わった:欠損を0として平均すると値が小さく見える。メジャーを分ける(表示用と分析用)
・(Blank)が消えない:リレーションのキー欠損や不一致が原因。ファクトキーのNull削除、または不明キーへの置換を検討
・更新のたびに手作業が発生:Power Queryのステップとして残す。手動フィルターではなく、再現性のある変換に寄せる
まとめ
power bi null削除は「Nullを消す」だけの話ではなく、どの層で、どの目的で扱うかを決めることが肝です。モデルに入る前ならPower Queryで行削除や置換、モデル上ならDAXでBLANK制御、見た目だけならビジュアルフィルター。これらを使い分けると、レポートの見やすさと分析の正確さを両立できます。Nullの意味を守りながら、必要な場所だけスッキリさせる、という考え方で進めると失敗が減ります。
コメント