Power Query (informally known as "M") Formula reference
https://msdn.microsoft.com/en-us/library/mt211003.aspx
http://download.microsoft.com/download/8/1/A/81A62C9B-04D5-4B6D-B162-D28E4D848552/Power%20Query%20Formula%20Language%20Specification%20(August%202015).pdf
Power Query M function reference
https://msdn.microsoft.com/en-us/library/mt779182.aspx
Expressions, values, and let expression
https://msdn.microsoft.com/en-us/library/mt299038.aspx
Type conversion
https://msdn.microsoft.com/en-us/library/mt186370.aspx
Power BI Desktop でのデータ型
https://powerbi.microsoft.com/ja-jp/documentation/powerbi-desktop-data-types/
Data Analysis Expressions (DAX) リファレンス
https://msdn.microsoft.com/library/gg413422.aspx
視覚化
種類 |
備考 |
積み上げ横棒グラフ |
|
積み上げ縦棒グラフ |
|
集合横棒グラフ |
|
集合縦棒グラフ |
|
100% 積み上げ横棒グラフ |
|
100% 積み上げ縦棒具フラフ |
|
折れ線グラフ |
|
面グラフ |
|
積み上げ面グラフ |
|
折れ線グラフおよび積み上げ縦棒グラフ |
|
折れ線グラフおよび集合縦棒グラフ |
|
ウォーターフォール図 |
|
散布図 |
|
円グラフ |
|
TreeMap |
|
マップ |
|
テーブル |
|
マトリックス |
|
塗り分け地図 |
|
フィルター |
|
ゲージ |
|
複数の行カード |
|
カード |
|
KPI |
|
スライサー |
|
ドーナツ グラフ |
|
R ビジュアル |
|
ファイルからインポートする |
|
ホーム
列の管理
操作 |
クエリ |
備考 |
列の選択 |
Table.SelectColumns(ソース,{"列1", "列2"}) |
|
列の削除 |
Table.RemoveColumns(ソース,{"列1"}) |
|
行の削減
操作 |
クエリ |
備考 |
行の保持 – 上位の行を保持 |
Table.FirstN(ソース,1) |
|
行の保持 – 下位の行を保持 |
Table.LastN(ソース, 1) |
|
行の保持 – 行の範囲の保持 |
Table.Range(ソース,1,3) |
|
行の保持 – 重複の保持 |
let columnNames = {"列1"}, addCount = Table.Group(ソース, columnNames, {{"Count", Table.RowCount, type number}}), selectDuplicates = Table.SelectRows(addCount, each [Count] > 1), removeCount = Table.RemoveColumns(selectDuplicates, "Count") in Table.Join(ソース, columnNames, removeCount, columnNames, JoinKind.Inner) |
|
行の保持 – エラーの保持 |
Table.SelectRowsWithErrors(ソース, {"列1"}) |
|
操作 |
クエリ |
備考 |
行の削除 – 上位の行の削除 |
Table.Skip(ソース,1) |
|
行の削除 – 下位の行の削除 |
Table.RemoveLastN(ソース,1) |
|
行の削除 – 代替行の削除 |
Table.AlternateRows(ソース,0,2,1) |
|
行の削除 – 重複の削除 |
Table.Distinct(ソース, {"列1"}) |
|
行の削除 – 空白行の削除 |
Table.SelectRows(ソース, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))) |
|
行の削除 – エラーの削除 |
Table.RemoveRowsWithErrors(ソース, {"列1"}) |
|
並べ替え
操作 |
クエリ |
備考 |
昇順で並べ替え |
Table.Sort(ソース,{{"列1", Order.Ascending}}) |
|
降順で並べ替え |
Table.Sort(ソース,{{"列1", Order.Descending}}) |
|
変換
操作 |
クエリ |
備考 |
列の分割 – 区切り記号による分割 |
Table.SplitColumn(Table.TransformColumnTypes(ソース, {{"列2", type text}}, "ja-JP"),"列2",Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv),{"列2.1", "列2.2", "列2.3"}), |
|
列の分割 – 文字数による分割 |
Table.SplitColumn(Table.TransformColumnTypes(ソース, {{"列2", type text}}, "ja-JP"),"列2",Splitter.SplitTextByRepeatedLengths(1),{"列2.1", "列2.2"}), |
|
操作 |
クエリ |
備考 |
グループ化 |
Table.Group(ソース, {"列1"}, {{"カウント", each Table.RowCount(_), type number}}) |
|
操作 |
クエリ |
備考 |
データ型 |
Table.TransformColumnTypes(ソース,{{"列1", Int64.Type}, {"列2", type number}}) |
|
操作 |
クエリ |
備考 |
先頭の行を見出しとして使用 – 先頭の行を見出しとして使用 |
Table.PromoteHeaders(ソース, [PromoteAllScalars=true]) |
|
先頭の行を見出しとして使用 – ヘッダーを 1 行目として使う |
Table.DemoteHeaders(ソース) |
|
操作 |
クエリ |
備考 |
値の置換 |
Table.ReplaceValue(ソース,"1","2",Replacer.ReplaceText,{"列1", "列2"}) |
|
結合
操作 |
クエリ |
備考 |
クエリのマージ – クエリのマージ |
Table.NestedJoin(ソース,{"列1"},T2,{"列1"},"NewColumn",JoinKind.RightOuter) |
|
クエリのマージ – 新規としてクエリをマージ |
Table.NestedJoin(T1,{"列1"},T2,{"列1"},"NewColumn",JoinKind.LeftOuter) |
|
操作 |
クエリ |
備考 |
マージ後のテーブルの展開 |
Table.ExpandTableColumn(マージされたクエリ数, "NewColumn", {"列1", "列2"}, {"NewColumn.列1", "NewColumn.列2"}) |
|
操作 |
クエリ |
備考 |
クエリの追加 – クエリの追加 |
Table.Combine({ソース, T2}) |
|
クエリの追加 – クエリを新規クエリとして追加 |
Table.Combine({T1, T2}) |
|
操作 |
クエリ |
備考 |
ファイルの結合 |
|
|
変換
テーブル
操作 |
クエリ |
備考 |
グループ化 |
Table.Group(ソース, {"列1"}, {{"カウント", each Table.RowCount(_), type number}}) |
|
先頭の行を見出しとして使用 |
Table.PromoteHeaders(ソース, [PromoteAllScalars=true]) |
|
入れ替え |
Table.Transpose(ソース) |
|
行の反転 |
Table.ReverseRows(ソース) |
|
行数のカウント |
|
|
任意の列
操作 |
クエリ |
備考 |
データ型 |
Table.TransformColumnTypes(ソース,{{"列1", type text}, {"列2", type text}}) |
|
データ型の検出 |
Table.TransformColumnTypes(ソース,{{"列1", Int64.Type}, {"列2", type date}}) |
|
名前の変更 |
Table.RenameColumns(ソース,{{"列1", "C1"}, {"列2", "C2"}}) |
|
値の置換 |
Table.ReplaceValue(ソース,"1","2",Replacer.ReplaceText,{"列1", "列2"}) |
|
フィル – 下 |
Table.FillDown(ソース,{"列2"}) |
|
フィル – 上 |
Table.FillUp(ソース,{"列2"}) |
|
列のピボット |
Table.Pivot(ソース, List.Distinct(ソース[列2]), "列2", "列1", List.Count) |
|
列のピボット解除 – 列のピボット解除 |
Table.UnpivotOtherColumns(ピボットされた列, {"2", "3", "4"}, "属性", "値") |
|
列のピボット解除 – その他の列のピボット解除 |
Table.UnpivotOtherColumns(ピボットされた列, {"1"}, "属性", "値") |
|
移動 – 左へ移動 |
Table.ReorderColumns(ソース,{"列2", "列1"}) |
|
移動 – 右へ移動 |
Table.ReorderColumns(ソース,{"列2", "列1"}) |
|
移動 – 先頭に移動 |
Table.ReorderColumns(ソース,{"列2", "列1"}) |
|
移動 – 末尾に移動 |
Table.ReorderColumns(ソース,{"列2", "列1"}) |
|
リストに変換する |
ソース[列2] |
|
テキストの列
操作 |
クエリ |
備考 |
列の分割 – 区切り記号による分割 |
Table.SplitColumn(Table.TransformColumnTypes(変更された型, {{"列2", type text}}, "ja-JP"),"列2",Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv),{"列2.1", "列2.2", "列2.3"}), |
|
列の分割 – 文字数による分割 |
Table.SplitColumn(Table.TransformColumnTypes(変更された型, {{"列2", type text}}, "ja-JP"),"列2",Splitter.SplitTextByRepeatedLengths(1),{"列2.1", "列2.2", "列2.3", "列2.4", "列2.5", "列2.6", "列2.7", "列2.8", "列2.9", "列2.10", "列2.11", "列2.12", "列2.13", "列2.14", "列2.15", "列2.16", "列2.17", "列2.18"}), |
|
操作 |
クエリ |
備考 |
書式 – 小文字 |
Table.TransformColumns(ソース,{{"列1", Text.Lower}}) |
|
書式 – 大文字 |
Table.TransformColumns(ソース,{{"列1", Text.Upper}}) |
|
書式 – 各単語の先頭文字を大文字にする |
Table.TransformColumns(ソース,{{"列1", Text.Proper}}) |
|
書式 – トリミング |
Table.TransformColumns(ソース,{{"列1", Text.Trim}}) |
|
書式 – クリーン |
Table.TransformColumns(ソース,{{"列1", Text.Clean}}) |
|
書式 – プレフィックスの追加 |
Table.TransformColumns(ソース, {{"列1", each "AAA" & _, type text}}) |
|
書式 – サフィックスの追加 |
Table.TransformColumns(ソース, {{"列1", each _ & "ZZZ", type text}}) |
|
操作 |
クエリ |
備考 |
列のマージ |
Table.CombineColumns(ソース,{"列1", "列2"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"結合済み") |
|
操作 |
クエリ |
備考 |
抽出 – 長さ |
Table.TransformColumns(ソース,{{"列2", Text.Length}}) |
|
抽出 – 最初の文字 |
Table.TransformColumns(ソース, {{"列2", each Text.Start(Text.From(_, "ja-JP"), 5), type text}}) |
|
抽出 – 最後の文字 |
Table.TransformColumns(ソース, {{"列2", each Text.End(_, 5), type text}}) |
|
抽出 – 範囲 |
Table.TransformColumns(ソース, {{"列2", each Text.Middle(_, 2, 4), type text}}) |
|
操作 |
クエリ |
備考 |
解析 – XML |
Table.TransformColumns(ソース,{{"列2", Xml.Tables}}) |
|
解析 – JSON |
Table.TransformColumns(ソース,{{"列2", Json.Document}}) |
|
数値の列
操作 |
クエリ |
備考 |
統計 – 合計 |
List.Sum(変更された型[列1]) |
|
統計 – 最小値 |
List.Min(変更された型[列1]) |
|
統計 – 最大値 |
List.Max(変更された型[列1]) |
|
統計 – 中央値 |
List.Median(変更された型[列1]) |
|
統計 – 平均 |
List.Average(変更された型[列1]) |
|
統計 – 標準偏差 |
List.StandardDeviation(変更された型[列1]) |
|
統計 – 値のカウント |
List.NonNullCount(変更された型[列1]) |
|
統計 – 個別の値のカウント |
List.NonNullCount(List.Distinct(変更された型[列1])) |
|
操作 |
クエリ |
備考 |
標準 – 加算 |
Table.TransformColumns(変更された型, {{"列1", each _ + 1, type number}}) |
|
標準 – 乗算 |
Table.TransformColumns(変更された型, {{"列1", each _ * 2, type number}}) |
|
標準 – 減算 |
Table.TransformColumns(変更された型, {{"列1", each _ – 2, type number}}) |
|
標準 – 除算 |
Table.TransformColumns(変更された型, {{"列1", each _ / 2, type number}}) |
|
標準 – 整数除算 |
Table.TransformColumns(変更された型, {{"列1", each Number.IntegerDivide(_, 3), Int64.Type}}) |
|
標準 – 剰余 |
Table.TransformColumns(変更された型, {{"列1", each Number.Mod(_, 2), type number}}) |
|
標準 – パーセンテージ |
Table.TransformColumns(変更された型, {{"列1", each _ * 4 / 100, type number}}) |
|
標準 – 次に対するパーセンテージ |
Table.TransformColumns(変更された型, {{"列1", each _ / 5 * 100, type number}}) |
|
操作 |
クエリ |
備考 |
指数 – 絶対値 |
Table.TransformColumns(変更された型,{{"列1", Number.Abs, type number}}) |
|
指数 – 累乗 – 2 乗 |
Table.TransformColumns(変更された型,{{"列1", each Number.Power(_, 2), type number}}) |
|
指数 – 累乗 – 3 乗 |
Table.TransformColumns(変更された型,{{"列1", each Number.Power(_, 3), type number}}) |
|
指数 – 累乗 – 累乗 |
Table.TransformColumns(変更された型,{{"列1", each Number.Power(_, 5), type number}}) |
|
指数 – 平方根 |
Table.TransformColumns(変更された型,{{"列1", Number.Sqrt, type number}}) |
|
指数 – 指数 |
Table.TransformColumns(変更された型,{{"列1", Number.Exp, type number}}) |
|
指数 – 対数 – 常用対数 |
Table.TransformColumns(変更された型,{{"列1", Number.Log10, type number}}) |
|
指数 – 対数 – 自然対数 |
Table.TransformColumns(変更された型,{{"列1", Number.Ln, type number}}) |
|
指数 – 階乗 |
Table.TransformColumns(変更された型,{{"列1", Number.Factorial, type number}}) |
 |
操作 |
クエリ |
備考 |
三角関数 – サイン |
Table.TransformColumns(変更された型,{{"列1", Number.Sin, type number}}) |
|
三角関数 – コサイン |
Table.TransformColumns(変更された型,{{"列1", Number.Cos, type number}}) |
|
三角関数 – タンジェント |
Table.TransformColumns(変更された型,{{"列1", Number.Tan, type number}}) |
|
三角関数 – アークサイン |
Table.TransformColumns(変更された型,{{"列1", Number.Asin, type number}}) |
|
三角関数 – アークコサイン |
Table.TransformColumns(変更された型,{{"列1", Number.Acos, type number}}) |
|
三角関数 – アークタンジェント |
Table.TransformColumns(変更された型,{{"列1", Number.Atan, type number}}) |
|
操作 |
クエリ |
備考 |
丸め – 切り上げ |
Table.TransformColumns(変更された型,{{"列1", Number.RoundUp, Int64.Type}}) |
|
丸め – 切り捨て |
Table.TransformColumns(変更された型,{{"列1", Number.RoundDown, Int64.Type}}) |
|
丸め – 四捨五入 |
Table.TransformColumns(変更された型,{{"列1", each Number.Round(_, 2), type number}}) |
|
操作 |
クエリ |
備考 |
情報 – 偶数 |
Table.TransformColumns(変更された型,{{"列1", Number.IsEven, type logical}}) |
|
情報 – 奇数 |
Table.TransformColumns(変更された型,{{"列1", Number.IsOdd, type logical}}) |
|
情報 – 符号 |
Table.TransformColumns(変更された型,{{"列1", Number.Sign, Int64.Type}}) |
|
日付と時刻の列
操作 |
クエリ |
備考 |
日付 – 期間 |
Table.TransformColumns(変更された型,{{"列2", each DateTime.LocalNow() – _, type duration}}) |
|
日付 – 日付のみ |
Table.TransformColumns(変更された型,{{"列2", DateTime.Date}}) |
|
日付 – 解析 |
Table.TransformColumns(変更された型,{{"列1", each Date.From(DateTimeZone.From(_)), type date}}) |
|
日付 – 年 – 年 |
Table.TransformColumns(変更された型,{{"列2", Date.Year}}) |
|
日付 – 年 – 年の開始日 |
Table.TransformColumns(変更された型,{{"列2", Date.StartOfYear, type datetime}}) |
|
日付 – 年 – 年の最終日 |
Table.TransformColumns(変更された型,{{"列2", Date.EndOfYear, type datetime}}) |
|
日付 – 月 – 月 |
Table.TransformColumns(変更された型,{{"列2", Date.Month}}) |
|
日付 – 月 – 月の開始日 |
Table.TransformColumns(変更された型,{{"列2", Date.StartOfMonth, type datetime}}) |
|
日付 – 月 – 月の最終日 |
Table.TransformColumns(変更された型,{{"列2", Date.EndOfMonth, type datetime}}) |
|
日付 – 月 – 月内の日数 |
Table.TransformColumns(変更された型,{{"列2", Date.DaysInMonth}}) |
|
日付 – 月 – 月の名前 |
Table.TransformColumns(変更された型, {{"列2", each Date.MonthName(_), type text}}) |
|
日付 – 四半期 – 年の四半期 |
Table.TransformColumns(変更された型,{{"列2", Date.QuarterOfYear}}) |
|
日付 – 四半期 – 四半期の開始日 |
Table.TransformColumns(変更された型,{{"列2", Date.StartOfQuarter, type datetime}}) |
|
日付 – 四半期 – 四半期の終了日 |
Table.TransformColumns(変更された型,{{"列2", Date.EndOfQuarter, type datetime}}) |
|
日付 – 週 – 年の通算週 |
Table.TransformColumns(変更された型,{{"列2", Date.WeekOfYear}}) |
|
日付 – 週 – 月の通算週 |
Table.TransformColumns(変更された型,{{"列2", Date.WeekOfMonth}}) |
|
日付 – 週 – 週の開始日 |
Table.TransformColumns(変更された型,{{"列2", Date.StartOfWeek, type datetime}}) |
|
日付 – 週 – 週の終了日 |
Table.TransformColumns(変更された型,{{"列2", Date.EndOfWeek, type datetime}}) |
|
日付 – 日 – 日 |
Table.TransformColumns(変更された型,{{"列2", Date.Day}}) |
|
日付 – 日 – 週の通算日 |
Table.TransformColumns(変更された型,{{"列2", Date.DayOfWeek}}) |
|
日付 – 日 – 年の通算日 |
Table.TransformColumns(変更された型,{{"列2", Date.DayOfYear}}) |
|
日付 – 日 – 一日の開始時刻 |
Table.TransformColumns(変更された型,{{"列2", Date.StartOfDay}}) |
|
日付 – 日 – 最終日 |
Table.TransformColumns(変更された型,{{"列2", Date.EndOfDay}}) |
|
日付 – 日 – 曜日名 |
Table.TransformColumns(変更された型, {{"列2", each Date.DayOfWeekName(_), type text}}) |
|
日付 – 日数の減算 |
Table.AddColumn(追加されたカスタム1, "DateDifference", each Duration.Days([カスタム.1] – [列2]), Int64.Type) |
|
日付 – 日付と時刻の組み合わせ |
Table.AddColumn(削除された列, "結合済み", each [カスタム] & [Date], type datetime) |
|
日付 – 最も早い |
List.Min(変更された型[列2]) |
|
日付 – 最も遅い |
List.Max(変更された型[列2]) |
|
操作 |
クエリ |
備考 |
時刻 – 時刻のみ |
Table.TransformColumns(計算された現地時刻,{{"列2", DateTime.Time}}) |
|
時刻 – 現地時刻 |
Table.TransformColumns(変更された型,{{"列2", DateTimeZone.ToLocal, type datetimezone}}) |
|
時刻 – 解析 |
Table.TransformColumns(計算された現地時刻,{{"列1", each Time.From(DateTimeZone.From(_)), type time}}) |
|
時刻 – 時 – 時 |
Table.TransformColumns(抽出された時刻,{{"列2", Time.Hour}}) |
< /td> |
時刻 – 時 – 時間の始まり |
Table.TransformColumns(抽出された時刻,{{"列2", Time.StartOfHour, type time}}) |
|
時刻 – 時 – 時間の終わり |
Table.TransformColumns(抽出された時刻,{{"列2", Time.EndOfHour, type time}}) |
|
時刻 – 分 |
Table.TransformColumns(抽出された時刻,{{"列2", Time.Minute}}) |
|
時刻 – 秒 |
Table.TransformColumns(抽出された時刻,{{"列2", Time.Second}}) |
|
時刻 – 日付と時刻の組み合わせ |
Table.CombineColumns(変更された型1, {"列2", "カスタム"}, (columns) => List.First(columns) & List.Last(columns), "結合済み") |
|
時刻 – 最も早い |
List.Min(抽出された時刻[列2]) |
|
時刻 – 最も遅い |
List.Max(抽出された時刻[列2]) |
|
操作 |
クエリ |
備考 |
期間 – 日間 |
Table.TransformColumns(変更された型,{{"列1", Duration.Days, Int64.Type}}) |
|
期間 – 時間 |
Table.TransformColumns(変更された型,{{"列1", Duration.Hours, Int64.Type}}) |
|
期間 – 分 |
Table.TransformColumns(変更された型,{{"列1", Duration.Minutes, Int64.Type}}) |
|
期間 – 秒 |
Table.TransformColumns(変更された型,{{"列1", Duration.Seconds, type number}}) |
|
期間 – 合計年数 |
Table.TransformColumns(変更された型,{{"列1", each Duration.TotalDays(_) / 365, type number}}) |
|
期間 – 合計日数 |
Table.TransformColumns(変更された型,{{"列1", Duration.TotalDays, type number}}) |
|
期間 – 合計時間数 |
Table.TransformColumns(変更された型,{{"列1", Duration.TotalHours, type number}}) |
|
期間 – 合計分数 |
Table.TransformColumns(変更された型,{{"列1", Duration.TotalMinutes, type number}}) |
|
期間 – 合計秒数 |
Table.TransformColumns(変更された型,{{"列1", Duration.TotalMinutes, type number}}) |
|
期間 – 乗算 |
Table.TransformColumns(変更された型, {{"列1", each _ * 2, type duration}}) |
|
期間 – 除算 |
Table.TransformColumns(変更された型, {{"列1", each _ / 3, type duration}}) |
|
期間 – 統計 – 合計 |
List.Sum(変更された型[列1]) |
|
期間 – 統計 – 最小値 |
List.Min(変更された型[列1]) |
|
期間 – 統計 – 最大値 |
List.Max(変更された型[列1]) |
|
期間 – 統計 – 中央値 |
List.Median(変更された型[列1]) |
|
期間 – 統計 – 平均 |
List.Average(変更された型[列1]) |
|
リストツール
※リストを選択している場合のみ使用可能 / リストはテーブルとは異なり「変換」「列の追加」タブの操作は使用できない
変換
操作 |
クエリ |
備考 |
テーブルへの変換 |
Table.FromList(列1, Splitter.SplitByNothing(), null, null, ExtraValues.Error) |
|
アイテムの管理
操作 |
クエリ |
備考 |
アイテムの保持 – 上位のアイテムの保持 |
List.FirstN(列1,f1) |
|
アイテムの保持 – 下位のアイテムの保持 |
List.LastN(列1, 1) |
|
アイテムの保持 – アイテムの範囲の保持 |
List.Range(列1,1,4) |
|
アイテムの削除 – 上位のアイテムの削除 |
List.Skip(列1,1) |
|
アイテムの削除 – 下位のアイテムの削除 |
List.RemoveLastN(列1,1) |
|
アイテムの削除 – 代替アイテムの削除 |
List.Alternate(列1,3,2,0) |
|
重複の削除 |
List.Distinct(列1) |
|
アイテムの反転 |
List.Reverse(列1) |
|
並べ替え
操作 |
クエリ |
備考 |
昇順で並べ替え |
List.Sort(列1,Order.Ascending) |
|
降順で並べ替え |
List.Sort(列1,Order.Descending) |
|
数値リスト
操作 |
クエリ |
備考 |
統計 – 値のカウント |
List.NonNullCount(列1) |
|
統計 – 個別の値のカウント |
List.NonNullCount(List.Distinct(列1)) |
|
[…] Power BI Desktop チートシート […]
Azure Update (2017.03.23) | ブチザッキ
23 3月 17 at 04:07