📊
1側のキー列に空白が含まれているため、1対多のリレーションシップを作成できない
はじめに
Power BI Desktop でリレーションシップを作成する際、1側(1対多の“1”側)となるテーブルのキー列に空白が含まれていると、リレーションシップが作成できずエラーが発生します。
「1側のキー列に空白値が含まれているため、リレーションシップを作成できない」 の原因と対処方法を記載します。
概要
1対多リレーションシップでは、 1側となるキー列は「一意であること」と「空白を含まないこと」が必要です。
空白は「有効なキー値として扱えない値」であり、そのため1つでも存在すると、1側キーの条件である 一意性 が成立しません。
この状態では 1対多リレーションシップを作成できないため、1側(1対多の“1”側)となるテーブルのキー列の値を修正し、その後にリレーションシップの設定を行います。
詳細
Power BI Desktop でデータを読込した後、モデルビューを開きリレーションシップの編集を行います。
データモデルでキー列が一意であるにもかかわらず、1対多のリレーションシップを設定しようとすると警告が発生します。(図1)
またこの状態で「保存」を選択しても検証ができないというメッセージが表示され、「確認」を選択してもリレーションシップが保存されません。(図2)
<図1: リレーションシップの設定画面>

<図2: エラー画面>

解決方法
概要
1側のキー列に空白が含まれている場合は、他の値が一意である場合にも一意性が認識されず、1対多のリレーションシップの設定ができません。
対応方法として1側キー列のデータの確認および置換方法の手順を次に記載します。
方法(手順)
-
データの確認
- Power BI Desktop のテーブルビューで、キー列に空白が含まれていないか確認します。
- 大量にデータがある場合は、列フィルタを利用して確認が可能です。
- Power BI Desktop のテーブルビューで、キー列に空白が含まれていないか確認します。
-
データの置換
- 空白が含まれている場合は、Power Queryのデータ前処理などで空白値を置換または削除します。
- Power Queryで修正を行う場合は、「空の削除」機能を利用することで削除可能です。
- Power Query の修正後、「閉じて適用」をクリックし、変更内容をデータモデルに反映します。
- Power Queryで修正を行う場合は、「空の削除」機能を利用することで削除可能です。
- リレーションシップの作成
- データの置換により、1対多のリレーションシップが設定できるようになりました。
- モデルビューで、新しいリレーションシップを作成します。
- 「一対多」でエラーメッセージが表示されず設定できるようになりますので、「保存」をクリックします。
- モデルビューで新しいリレーションシップが「1対多」で作成されました。
参考
Discussion