Text/CSV

まとめ

項目 説明
リリース状態 一般提供
製品 Excel
Power BI (セマンティック モデル)
Power BI (データフロー)
ファブリック (データフロー Gen2)
Power Apps (データフロー)
Dynamics 365 Customer Insights
Analysis Services
関数リファレンス ドキュメント File.Contents
Lines.FromBinary
Csv.Document

Note

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

サポートされる機能

  • インポート

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

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

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

    Text file selection.

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

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

    Text in the Navigator.

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

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

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

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

    Text file selection online

  3. [データ ゲートウェイ] でオンプレミス データ ゲートウェイを選択します。

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

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

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

    Transform data

Web から読み込む

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

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

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

非構造化テキスト

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

Hello world.
This is sample data.

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

Loading data from a simple unstructured text file.

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

File culture selection for Text/CSV.

CSV

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

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

Loading data from a csv file.

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

Delimiter selection for a csv file.

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

Data type inference selection for a csv file.

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

Structured Text

Power Query がテキスト ファイルの構造を検出できる場合、テキスト ファイルは区切り文字で区切られた値ファイルとして扱われ、CSV を開くときに使用できるものと同じオプションが提供されます。CSV は基本的に区切り文字の種類を示す拡張子が付いた単なるファイルです。

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

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

Loading data from a structured text file.

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

ソースの編集

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

Editing the source step on a query accessing a CSV file.

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

Editing the line break style for a CSV file.

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

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

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

Loading of a CSV file with quoted line breaks ignored.

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

Loading of a CSV file with quoted line breaks applied.

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

Changing the type of file.

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

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

Using the Extract Table Using Examples option.

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

Note

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

Specify sample output values to extract data.

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

Detailed breakdown of steps for data extraction.

トラブルシューティング

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

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

大きな CSV ファイルの操作

Power Query オンライン エディターで大きな CSV ファイルを処理している場合、内部エラーが発生する可能性があります。 最初に小さいサイズの CSV ファイルで作業し、エディターで手順を適用し、完了したら、パスを大きい CSV ファイルに変更することをお勧めします。 この方法により、作業がより効率的になり、オンライン エディタでタイムアウトが発生する可能性が減ります。 タイムアウト期間を長くすることができるため、更新中にこのエラーが発生することは想定されていません。

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

まれに、コンマ数が似ている複数の段落があるドキュメントの場合、CSV と解釈されることがあります。 この問題が発生した場合は、Power Query エディターで Sourceステップを編集し、Open File AsCSVではなくTextを選択します。 ドロップダウン選択。

Power BI Desktop の列

CSV ファイルをインポートすると、Power BI Desktop は Power Query エディターのステップとして columns=x (x は最初のインポート時の CSV ファイルの列数です) を生成します。 後で列を追加し、データソースが更新されるように設定されている場合、最初の列の数 x を超える列は更新されません。

エラー: 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")))