テキスト/CSV

まとめ

Item 説明
リリース状態 一般公開
製品 Power BI (データセット)
Power BI (データフロー)
Power Apps (データフロー)
Excel
Dynamics 365 Customer Insights
Analysis Services
関数リファレンス ドキュメント File.Contents
Lines.FromBinary
Csv.Document

注意

デプロイ スケジュールにより、またホスト固有の機能があることにより、ある製品に存在する機能が他の製品にはない場合があります。

サポートされる機能

  • [インポート]

Power Query Desktop からローカルのテキストまたは CSV ファイルに接続する

ローカルのテキストまたは CSV ファイルを読み込むには:

  1. [データの取得][テキスト/CSV] オプションを選びます。 この操作でローカル ファイル ブラウザーが起動し、そこでテキスト ファイルを選択できます。

    テキスト ファイルの選択。

    [開く] を選択して、ファイルを開きます。

  2. [ナビゲーター] から [データの変換] を選んで Power Query エディターのデータを変換することや、 [読み込み] を選んでデータを読み込むことができます。

    [ナビゲーター] のテキスト。

Power Query Online からテキストまたは CSV ファイルに接続する

ローカルのテキストまたは CSV ファイルを読み込むには:

  1. [データ ソース] ページで、 [テキスト/CSV] を選びます。

  2. [接続の設定] に必要なローカルのテキストまたは CSV ファイルのファイル パスを入力します。

    オンラインでのテキスト ファイルの選択

  3. [データ ゲートウェイ] からオンプレミス データ ゲートウェイを選びます。

  4. ユーザー名とパスワードを入力します。

  5. [次へ] を選択します。

  6. [ナビゲーター] から [データの変換] を選び、Power Query エディターでデータの変換を開始します。

    データを変換する

Web から読み込む

Web からテキストまたは CSV ファイルを読み込むには、Web コネクタを選び、ファイルの Web アドレスを入力して、資格情報のプロンプトに従います。

テキストまたは CSV の区切り記号

Power Query では、コンマを区切り記号として使う構造化ファイルとして CSV を扱います。これはテキスト ファイルの特殊なケースです。 テキスト ファイルを選んだ場合、Power Query では、区切り記号で区切られた値があるかどうか、またその区切り記号は何かの判別が自動的に試行されます。 区切り記号を推論できた場合、自動的に構造化データ ソースとして扱われます。

非構造化テキスト

テキスト ファイルが構造化されていない場合は、ソース テキスト内でエンコードされた 1 行ごとに新しい行を持つ 1 つの列が取得されます。 非構造化テキストのサンプルとして、次のような内容のメモ帳ファイルを考えてみましょう。

Hello world.
This is sample data.

これを読み込むと、これらの行を個別の行に読み込むナビゲーション画面が表示されます。

単純な非構造化テキスト ファイルからデータの読み込み。

このダイアログで構成できるのは、 [元のファイル] ドロップダウンの選択のみです。 このドロップダウンでは、ファイルの生成に使った文字セットを選択できます。 現在、文字セットは推論されず、UTF-8 BOM で始まる場合にのみ、UTF-8 が推論されます。

テキストまたは CSV のファイル カルチャの選択。

CSV

CSV ファイルのサンプルについては、こちらを参照してください。

CSV では、元のファイルに加えて、区切り記号の指定や、データ型の検出方法の指定もサポートしています。

CSV ファイルからのデータの読み込み。

使用できる区切り記号には、コロン、コンマ、等号、セミコロン、スペース、タブ、カスタムの区切り記号 (任意の文字列)、固定幅 (テキストを標準の文字数で分割する) があります。

CSV ファイルの区切り記号の選択。

最後のドロップダウンでは、データ型の検出を処理する方法を選択できます。 最初の 200 行を基準にするか、データ セット全体を基準にするか、またはデータ型の自動検出を行わず、すべての列の既定値を 'テキスト' にするかを選択できます。 警告: データ セット全体に対して行うと、エディターでのデータの最初の読み込みに時間がかかる可能性があります。

CSV ファイルのデータ型の推論の選択。

推論が正しくない場合があるので、読み込む前に設定を再確認することをお勧めします。

Structured Text

Power Query によってテキスト ファイルの構造が検出されると、テキスト ファイルは区切り記号で区切られた値のファイルとして扱われるようになり、CSV (基本的には区切り記号の種類を示す拡張子が付いているだけのファイル) を開いたときと同じオプションが表示されます。

たとえば、次の例をテキスト ファイルとして保存した場合、非構造化テキストではなく、タブ区切り記号があるものとして読み込まれます。

Column 1    Column 2    Column 3
This is a string.   1   ABC123
This is also a string.  2   DEF456

構造化テキスト ファイルからのデータの読み込み。

これは、他のあらゆる種類の区切り記号ベースのファイルに使用できます。

ソースの編集

ソース ステップを編集するときには、最初に読み込んだときとは少し異なるダイアログが表示されます。 現在ファイルをどのように扱っているか (つまり、テキストか CSV か) に応じて、さまざまなドロップダウンを含む画面が表示されます。

CSV ファイルにアクセスするクエリのソース ステップの編集。

[改行] ドロップダウンでは、引用符内の改行を適用するかどうかを選択できます。

CSV ファイルの改行スタイルの編集。

たとえば、前述の '構造化' サンプルを編集する場合、改行を追加できます。

Column 1    Column 2    Column 3
This is a string.   1   "ABC
123"
This is also a string.  2   "DEF456"

[改行][引用符で囲まれた改行を無視] に設定した場合は、改行がないかのように (スペースが追加されて) 読み込まれます。

引用符で囲まれた改行を無視した CSV ファイルの読み込み。

[改行][すべての改行を適用] に設定した場合、改行後の内容がその行の唯一の内容となるように、追加の行が読み込まれます (正確な出力はファイル内容の構造によって変わります)。

引用符で囲まれた改行を適用した CSV ファイルの読み込み。

[形式を指定してファイルを開く] ドロップダウンでは、ファイルを読み込む形式を編集できます。これはトラブルシューティングに重要です。 厳密には CSV ではない構造化ファイル (テキスト ファイルとして保存されたタブ区切り値ファイルなど) の場合、 [形式を指定してファイルを開く] を [CSV] に設定することをお勧めします。 この設定にすることで、ダイアログの他の部分で使用できるドロップダウンの種類も決まります。

ファイルの種類の変更。

Text/CSV by Example (例によるテキスト/CSV)

Power Query の [Text/CSV by Example] (例によるテキスト/CSV) は、Power BI Desktop の一般提供機能です。 Text/CSV コネクタを使うと、ナビゲーターの左下隅に [例を使用してテーブルを抽出] というオプションが表示されます。

[例を使用してテーブルを抽出] オプションの使用。

このボタンを選ぶと、 [例を使用してテーブルを抽出] ページが表示されます。 このページでは、テキストまたは CSV ファイルから抽出するデータのサンプル出力値を指定します。 列の最初のセルを入力すると、列の他のセルが入力されます。データを正しく抽出するには、必要に応じて列の複数のセルを入力します。 列内の一部のセルが正しくない場合、最初の間違ったセルを修正すると、データは再抽出されます。 最初の数セルのデータを確認して、データが正常に抽出されたことを確認します。

注意

例を列順に入力することをお勧めします。 列が適切に入力されたら、新しい列を作成して、新しい列に例を入力し始めます。

サンプルの出力値を指定してデータを抽出します。

そのテーブルを構築し終わったら、データの読み込みと変換のいずれかを選びます。 結果のクエリには、データ抽出のために推論されたすべてのステップの詳細な内訳が含まれていることに注目してください。 これらのステップは単に通常のクエリ ステップであり、必要に応じてカスタマイズすることができます。

データ抽出のステップの詳細な内訳。

注意

この機能は Power Query Online でまもなくリリースされます。 詳細情報: [Text/CSV by Example](例によるテキスト/CSV) のデータ抽出

トラブルシューティング

Web からのファイルの読み込み

Web からテキストまたは CSV ファイルを要求し、ヘッダーも昇格させており、スロットリングの可能性を気にする必要があるほどのファイルを取得する場合は、Web.Contents の呼び出しを Binary.Buffer() でラップすることを検討することをお勧めします。 この場合、ヘッダーを昇格させる前にファイルをバッファーリングしておくことで、ファイルの要求は 1 回のみになります。

構造化として解釈される非構造化テキスト

まれに、コンマ数が似ている複数の段落があるドキュメントの場合、CSV と解釈されることがあります。 この問題が発生した場合は、クエリ エディターで [ソース] ステップを編集し、 [形式を指定してファイルを開く] ドロップダウンの選択で [CSV] ではなく [テキスト] を選びます。

エラー: Connection closed by host (ホストによって接続が閉じられました)

Web ソースからテキストまたは CSV ファイルを読み込み、さらにヘッダーを昇格させる場合は、“An existing connection was forcibly closed by the remote host” または “Received an unexpected EOF or 0 bytes from the transport stream.” のエラーが発生することがあります。これらのエラーは、ホストで保護措置が取られ、接続が閉じられたことが原因の可能性があります。これは一時停止の場合があります。たとえば、たとえば、別のデータ ソース接続で結合または追加操作を待機している場合などです。 これらのエラーを回避するには、Binary.Buffer (推奨) または Table.Buffer の呼び出しを追加してみてください。こうすると、ファイルをダウンロードし、メモリに読み込み、すぐに接続を閉じることができます。 これにより、ダウンロード中の一時停止を防ぎ、内容を取得する前に、ホストによって強制的に接続が閉じられないようにすることができます。

次の例はこの回避策を示しています。 このバッファーリングは、結果のテーブルが Table.PromoteHeaders に渡される前に行う必要があります。

  • 元のコード:
Csv.Document(Web.Contents("https://.../MyFile.csv"))
  • Binary.Buffer を使用する場合:
Csv.Document(Binary.Buffer(Web.Contents("https://.../MyFile.csv")))
  • Table.Buffer を使用する場合:
Table.Buffer(Csv.Document(Web.Contents("https://.../MyFile.csv")))