Power Query / Power BI:将每一行除以另一列

时间:2017-01-18 18:17:19

标签: powerbi powerquery

我使用查询非常新,我仍然需要正确地讨论这个主题.. :)

我正在Power BI中编辑一个查询,我创建了一个新列,用于显示列中每个单元格除以另一列的总和除以%。

我写了以下内容: = Table.AddColumn(#“Renamed Columns”,“CONTACTED(CVR)”,每个[CONTACTED] / [LEADS]) ,但它将列Leads列的每个单元格联系的列的每个单元格分开。

有什么办法吗?

提前致谢。

干杯, AS

4 个答案:

答案 0 :(得分:2)

在Power Query中:

= Table.AddColumn(#"Renamed Columns", "CONTACTED (CVR)", each [CONTACTED]/List.Sum(#"Renamed Columns"[LEADS]))

答案 1 :(得分:1)

我认为这就是你所要求的;你需要在下次将你的问题作为MWE。

将值(我的值称为“Place”)拖动到右侧的工具栏中两次。

右键单击第二个值并选择“快速计算”

enter image description here

确保“Summerize Value By”为Sum。

然后在“显示价值为”下选择总计百分比。

enter image description here

应该这样做。

答案 2 :(得分:1)

这应该可以解决问题,或者让你朝着正确的方向前进。

您正在寻找GUI中的Table.Group函数aka Transform-> Group By。详细信息请参见:https://msdn.microsoft.com/en-us/library/mt260774.aspx

let
  Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
  #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Leads", Int64.Type}, {"Contacted", Int64.Type}, {"User", type text}}),
  #"Grouped Rows" = Table.Group(#"Changed Type", {"Country"}, {{"Leads_Total", each List.Sum([Leads]), type number}, {"Contacted_Total", each List.Sum([Contacted]), type number}}),
  #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Percent", each [Contacted_Total]/[Leads_Total]),
  #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Leads_Total", "Contacted_Total"}),
  #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Country", "Country2"}}),
  #"Result" = Table.Join( Source , "Country" , #"Renamed Columns" , "Country2" , JoinKind.LeftOuter ),
  #"Removed Columns1" = Table.RemoveColumns(Result,{"Country2"})
in
  #"Removed Columns1"

希望它有所帮助。

答案 3 :(得分:0)

考虑您的情况per each country how many contacted out of leads, 那样做:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Types = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Leads", Int64.Type}, {"Contacted", Int64.Type}, {"User", type text}}),
    AddColumn = Table.AddColumn(Types, "Contacted (CVR)", (x) => x[Contacted]/List.Sum(Table.SelectRows(Types, (y)=> x[Country] = y[Country])[Leads]), Percentage.Type)
in
    AddColumn