[[20210716092039]] 『パワークエリでラグ変数を作りたい』(パワークエリ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パワークエリでラグ変数を作りたい』(パワークエリ)

パワークエリで
変数が year name income の3つとして
nameが同じ条件のもと year-1のincomeをL.incomeとして返す式を以下のように作ってますがつまくいきません
ご教示お願いします

= if year = year -1 and name = name then income else null

< 使用 Excel:Office365、使用 OS:Windows10 >


 1列目が x 2列目が y のテーブルで、yを1行ずらすことを考えます。
 まず、列の追加でインデックス列を追加します。
 次にカスタム列を追加して、追加されたインデックス{[インデックス]+1}[y] とします

 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"x", Int64.Type}, {"y", type number}}),
    追加されたインデックス = Table.AddIndexColumn(変更された型, "インデックス", 0, 1),
    追加されたカスタム = Table.AddColumn(追加されたインデックス, "カスタム", each 追加されたインデックス{[インデックス]+1}[y])
 in
    追加されたカスタム

 これでどうでしょう
(´・ω・`) 2021/07/16(金) 10:08

 こうかな
 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"year", Int64.Type}, {"name", type text}, {"income", Int64.Type}}),
    並べ替えられた行 = Table.Sort(変更された型,{{"name", Order.Ascending}, {"year", Order.Ascending}}),
    追加されたインデックス = Table.AddIndexColumn(並べ替えられた行, "インデックス", 0, 1),
    追加されたカスタム = Table.AddColumn(追加されたインデックス, "L.income", each if [name] = 追加されたインデックス{[インデックス]+1}[name] then 追加されたインデックス{[インデックス]+1}[income] else null)
 in
    追加されたカスタム
(´・ω・`) 2021/07/16(金) 10:39

 こうでなきゃいけないのかな
 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    MyFunc = ( table , n , y) =>     
    let
        r = Table.SelectRows( table , each [name]= n and [year] = y ) 
    in
        r{0}[income],
    変更された型 = Table.TransformColumnTypes(ソース,{{"year", Int64.Type}, {"name", type text}, {"income", Int64.Type}}),
    追加されたカスタム = Table.AddColumn(変更された型, "L.income", each MyFunc(変更された型 ,[name],[year]+1))
 in
    追加されたカスタム
(´・ω・`) 2021/07/16(金) 12:34

マウス操作だけで簡単に、こんな感じでも。
 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"year", Int64.Type}, {"name", type text}, {"income", Int64.Type}}),
    挿入された加算 = Table.AddColumn(変更された型, "加算", each [year] + 1, type number),
    並べ替えられた列 = Table.ReorderColumns(挿入された加算,{"year", "加算", "name", "income"}),
    マージされたクエリ数 = Table.NestedJoin(並べ替えられた列, {"year", "name"}, 並べ替えられた列, {"加算", "name"}, "並べ替えられた列", JoinKind.LeftOuter),
    #"展開された 並べ替えられた列" = Table.ExpandTableColumn(マージされたクエリ数, "並べ替えられた列", {"income"}, {"income.1"}),
    #"名前が変更された列 " = Table.RenameColumns(#"展開された 並べ替えられた列",{{"income.1", "L.income"}}),
    削除された列 = Table.RemoveColumns(#"名前が変更された列 ",{"加算"}),
    並べ替えられた行 = Table.Sort(削除された列,{{"name", Order.Ascending}, {"year", Order.Ascending}})
 in
    並べ替えられた行

(マナ) 2021/07/16(金) 16:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.