列のデータ型を評価および変更する

完了

データ ソースからテーブルをインポートすると、Power BI Desktop によって、最初の 1,000 行 (既定の設定) のスキャンが自動的に開始され、列内のデータの型の検出が試みられます。 状況によっては、Power BI Desktop で正しいデータ型が検出されない可能性があります。 正しくないデータ型があると、パフォーマンスの問題が発生します。

コンマ区切り値 (.CSV) ファイルや Excel ブック (.XLSX) などのフラット ファイルを処理するときは、データがワークシートに手入力されて誤りが発生したため、データ型エラーが発生する可能性が高くなります。 逆に、データベースでは、テーブルやビューを作成するときにデータ型が事前に定義されています。

ベスト プラクティスは、データを Power BI のセマンティック モデルに読み込む前に、Power Query エディターで列のデータ型を評価することです。 データ型が正しくないと判断した場合は、データ型を変更できます。 また、列の値に書式を適用し、列の概要作成の既定値を変更することもできます。

レポート作成の準備として売上データをクリーニングして変換するシナリオを続けるには、列を評価して、正しいデータ型であることを確かめる必要があります。 明らかになったエラーを修正する必要があります。

OrderDate 列を評価します。 想定したとおり数値データが含まれていますが、Power BI Desktop では列のデータ型が誤って Text に設定されています。 この列に関するレポートを作成するには、データ型を Text から Date に変更する必要があります。

テキストとして設定された OrderDate 列のデータ型

不適切なデータ型の影響

以下の情報により、Power BI でデータ型が適切に検出されない場合に発生する可能性がある問題について分析情報が提供されます。

データ型が正しくないと、特定の計算の作成、階層の派生、あるいは他のテーブルとの適切なリレーションシップの作成ができなくなります。 たとえば、Quantity of Orders YTD を計算しようとすると、OrderDate 列のデータ型が日付 (時間ベースの計算に必要) でないことを示す次のエラーが表示されます。

Quantity of Orders YTD = TOTALYTD(SUM('Sales'[OrderQty]), 'Sales'[OrderDate])

時間ベースの計算メジャーのエラー

日付フィールドに正しくないデータ型が適用された場合のもう 1 つの問題は、年、月、または週単位でデータを分析できるようにする、日付階層を作成できなくなることです。 次のスクリーンショットには、SalesDate フィールドが日付型として認識されず、テーブル ビジュアルに日付の一覧としてのみ表示されることが示されています。 しかし、日付テーブルを使用し、[自動の日付/時刻] をオフにして、自動生成された階層を取り除くことをお勧めします。 このプロセスの詳細については、自動生成されたデータ型に関するドキュメントを参照してください。

追加の SalesDate オプション

列のデータ型を変更する

列のデータ型は、Power Query エディターと、Power BI Desktop レポート ビュー (列ツールを使用) の 2 か所で変更できます。 データを読み込む前に、Power Query エディターでデータ型を変更することをお勧めします。

Power Query エディターで列のデータ型を変更する

Power Query エディターでは、2 つの方法で列のデータ型を変更できます。 方法の 1 つは、問題のある列を選択し、[変換] タブで [データ型] を選んでから、一覧から正しいデータ型を選択します。

[変換] リボンでデータ型を選択する

もう 1 つの方法は、列ヘッダーの横にあるデータ型アイコンを選択し、一覧から正しいデータ型を選びます。

一覧からデータ型を選択する

Power Query エディターで行う他のすべての変更と同様に、列のデータ型に加える変更は、プログラミングされた手順として保存されます。 この手順は変更された型と呼ばれ、データが更新されるたびに反復されます。

データを消去および変換するためのすべての手順を完了した後、[閉じて適用] を選択して Power Query エディターを閉じ、変更内容をセマンティック モデルに適用します。 この段階で、データは分析とレポート作成に最適な形になっているはずです。

詳細については、Power BI Desktop でのデータ型に関する記事をご覧ください。