2017 年 4 月リリース以降の Power BI Desktop では、クエリ エディターを使い、新しい列のサンプル値を指定するだけで、モデルに新しいデータ列を追加できます。 現在選択されているものから、または特定のテーブルのすべての (または選択されている) 列に基づいて入力を提供することで、新しい列の例を作成できます。

この方法を使うと、新しい列をすばやく簡単に作成でき、次のような場合に最適です。

  • 新しい列に設定するデータの結果はわかっているものの、それを実現する変換 (または変換のコレクション) がわからない。
  • 必要な変換は既にわかっているものの、それを実行するために UI のどこをクリックまたは選択すればよいかわからない。
  • M の "カスタム列" 式を使って行う必要がある変換についてはすべてわかっているものの、そのような式の 1 つ (または複数) を UI でクリックまたは追加できない。

例からの列の追加機能の使い方は簡単です。 以下ではそれについて説明します。

クエリ エディターを使って例から新しい列を追加する

例から新しい列を作成するには、クエリ エディターを起動します。 それには、Power BI Desktop[ホーム] リボンで [クエリを編集] を選びます。

この記事では、次の Wikipedia 記事からのデータを使います (リンクになっているので、クリックしてデータを取得し、自分で試してみることができます)。

クエリ エディターを起動してデータを読み込んだ後は、例からの列の追加を始めることができます。 新しい列を追加するには、クエリ エディターでリボンの [列の追加] タブを選び、[例からの列] を選びます。 ドロップダウンを選んだ場合は、[すべての列から] (ドロップダウンではなくボタンを選んだ場合の既定値) または [選択範囲から] を選ぶことができます。 ここでは、[すべての列から] を選んだ場合について説明します。

[例から列を追加する] ペイン

例から新しい列を追加する選択を行うと、現在のテーブルの列が新しいウィンドウに表示されます (すべてを表示するにはスクロールが必要な場合があります)。 新しい [列 1] も右側に表示されます。Power BI Desktop は例を基にしてこの列を作成します。 新しい [列 1] ヘッダーの下には空白のセルがあります。ここに例を入力すると、Power BI はそれを使って例と一致するようにルールと変換を作成します。

これは [クエリの設定] ペインの [適用したステップ] であることにも注意してください。 クエリ エディターは変換ステップを記録し、それを順番にクエリに適用します。

これは [例から列を追加する] という名前のペインで、4 つの主要な領域で構成されます。

  1. コマンド バーには、機能または変換の簡単な説明が表示されます。
  2. [フィードバックの送信] オプションは、この機能の向上に役立ちます。
  3. [OK] ボタンを選ぶと変換がコミットされて列に追加され、[キャンセル] ボタンを選ぶとキャンセルできます。
  4. 新しい列領域では、任意の行にサンプル値を入力し (Power BI に例を提供します)、その行の他の列に関連付けます。

新しい列に例を入力すると、Power BI は検出された変換に基づいて、作成している列のプレビューを表示します。 たとえば、テーブルの最初の列の Alabama という値に対応する「Alabama*」を最初の行に入力します。 *Enter キーを押すとすぐに、Power BI はその値に基づいて列を設定します。

しかし、Massachusetts[E] を含む行に移動して最後の *[E]*部分を (必要ないので) 削除すると、Power BI は変更を検出し、例を使って変換を作成します。 上の中央のペインに表示される変換の説明に注意してください。

例の提供を続けると、クエリ エディターはそれを変換に追加します。 問題がなければ、[OK] を選んで変更をコミットできます。

[例から列を追加する] の動作を確認する

この動作を確認したい場合は、 この例で前に提供したデータ ソースを使って行われるこの機能の処理を、次のビデオで見ることができます。 これを参考にして、自分でやってみてください。

考慮事項と制限事項

[例から列を追加する] では多くの変換を使うことができますが、すべてではありません。 次の一覧は、サポートされて "いる" すべての変換を示したものです。

  • 参照

    • 特定の列の参照 (トリムおよび大文字小文字の変換を含みます)
  • Text 変換

    • Text.Combine (リテラル文字列と列全体の値の組み合わせをサポートしています)
    • Text.Replace
    • Text.Start
    • Text.Middle
    • Text.End
    • Text.BeforeDelimiter
    • Text.AfterDelimiter
    • Text.BetweenDelimiters

    注: すべての Text 変換では、列の値のトリミングまたは大文字小文字変換の適用の必要性が考慮されます。

  • Date 変換

    • Date.Day
    • Date.DayOfWeek
    • Date.DayOfWeekName
    • Date.DayOfYear
    • Date.Month
    • Date.MonthName
    • Date.QuarterOfYear
    • Date.WeekOfMonth
    • Date.WeekOfYear
    • Date.Year
  • Time 変換

    • Time.Hour
    • Time.Minute
    • Time.Second

    注: すべての Date および Time 変換では、列の値を Date*、*Time*、または *DateTime に変換する必要性が考慮されます。