是否可以在powerquery公式中执行Excel的Countifs / Sumifs公式?假设我说[Column1]为“Criteria range”,[Column2]为“Criteria”(示例条件[Column2]文本包含“Product”),我想要新的自定义列中的Count / Sum [Column1]单元格([Column3] ])
答案 0 :(得分:1)
您可以根据条件使用过滤器进行过滤,然后在“变换”功能区选项卡中使用“计数行”。可以通过单击列中的箭头来完成过滤。
或者,您可以过滤列,然后使用分组依据计算计数或总和。
答案 1 :(得分:1)
You might want to try this formula:
require('babel/register')
it's not as flexible as SUMIFs but counts the number of records in Column1 that contain the word that stands in the current row of Column2
答案 2 :(得分:1)
我在COUNTIF的Power Query Editor中使用此功能,但我还没有掌握COUNTIFS或SUMIFS:
POST https://outlook.office.com/api/v2.0/me/subscriptions HTTP/1.1
Content-Type: application/json
{
@odata.type:"#Microsoft.OutlookServices.PushSubscription",
Resource: "https://outlook.office.com/api/v2.0/me/events",
NotificationURL: "https://mywebhook.azurewebsites.net/api/send/myNotifyClient",
ChangeType: "Created",
ClientState: "c75831bd-fad3-4191-9a66-280a48528679"
}
然后我就像
一样使用它let
countif = (tbl as table, col as text, value as any) as number =>
let
select_rows = Table.SelectRows(tbl, each Record.Field(_, col) = value),
count_rows = Table.RowCount(select_rows)
in
count_rows
in
countif
我已经在我的博客上广泛地写了这篇文章,这是我的首选方式。
http://jaykilleen.com/posts/countif-in-power-query-or-powerbi-using-m-language
我希望这可以帮助你:)
答案 3 :(得分:0)
我想我已经解决了这个问题。
我创建了一个csv。 [Sumifs test.csv]并将查询链接到此文件。
这是源表,如下所示: [标题] {行}
[Alpha1] {A A A A A A A A A A}
[Alpha1] {AA AA AA AA BB BB BB BB BB}
[Num1] {1 1 1 1 1 1 1 1 1}
[Num2] {11 11 11 11 22 22 22 22 22}
[Value] {1 2 3 4 5 6 7 8 9}
让
Source = Csv.Document(File.Contents(“D:\ Power BI \ Tests \ Sumifs test.csv”),[Delimiter =“,”,Encoding = 1252]),
#“Promoted Headers1”= Table.PromoteHeaders(Source),
#“Changed Type”= Table.TransformColumnTypes(#“Promoted Headers1”,{{“Num1”,Int64.Type},{“Num2”,Int64.Type},{“Value”,Int64.Type}}),< / p>
Phase1 =#“Changed Type”,
#“Grouped Rows”= Table.Group(#“更改类型”,{“Alpha1”,“Alpha1_1”},{{“值”,每个List.Sum([值]),类型编号}}),
MyList = List.Buffer(#“Grouped Rows”[Values]),
Custom1 =#“Grouped Rows”,
#“已添加自定义”= Table.AddColumn(Custom1,“累积”,每个List.Sum(List.Select(MyList,(x)=&gt; x&gt; = [值]))),
#“Grouped Rows1”= Table.Group(#“自定义”,{“Alpha1”},{{“Values2”,每个List.Sum([值]),类型编号}}),
MyList2 = List.Buffer(#“Grouped Rows1”[Values2]),
Custom2 =#“Grouped Rows1”,
#“Merged Queries”= Table.NestedJoin(Phase1,{“Alpha1”},Custom2,{“Alpha1”},“NewColumn”,JoinKind.LeftOuter),
#“Expanded NewColumn”= Table.ExpandTableColumn(#“Merged Queries”,“NewColumn”,{“Values2”},{“NewColumn.Values2”}),
Phase2 =#“Expanded NewColumn”,
#“Merged Queries2”= Table.NestedJoin(Phase2,{“Alpha1_1”},Custom1,{“Alpha1_1”},“NewColumn”,JoinKind.LeftOuter),
#“Expanded NewColumn1”= Table.ExpandTableColumn(#“Merged Queries2”,“NewColumn”,{“Values”},{“NewColumn.Values”})
在
#“扩展NewColumn1”
答案 4 :(得分:0)
请看这个例子:我有一个包含4列(Serial,Team,Name,Role)的表,如here所示,想要创建一个包含列的汇总表(Team,HasAdmin?,CountOfMembers)< / p>
我在3步中完成,如图所示:
第1步:使用conditional column
功能区中的Add Column
按钮添加2个新列,如here和here
第2步:将新列的类型更改为“整数”,如here所示
第3步:选择[小组]列并点击Group By
功能区中的Home
按钮,然后按所示填写here
光洁度!
对于“sumif”,您可以在步骤1中将单元格值设置为“1”
答案 5 :(得分:-1)
Powerquery遵循更多ETL方法。因此,在powerquery的情况下,您不能拥有活动的OLE。您可以将excel中的现有表链接为数据源,并可以根据需要生成一些特定的摘要。如果您想实现类似excel的功能,那么有一些先决条件。
您的数据应位于Excel表格中。 制作另一个包含搜索条件的表格。 现在你需要制作两个表,一个用于datasoure,第二个用于搜索条件
现在在从现有数据获取的表格中,您可以创建一个额外的指标列,您可以根据需要根据搜索条件输出 类似于实现countifs的东西 如果Text.Contains(col1,search criteria1)和Text.Contains(col2,searchcriteria 2)比1还要0 实施sumifs 如果Text.Contains(col1,search criteria1)和Text.Contains(col2,searchcriteria 2)比[sumcol]其他0 根据此列汇总表格,只需在工作表上选择输出结果的输出范围(这将是另一个单元格表格)
如果您已经从其他来源获取数据,只需为搜索条件创建参数表,如果您的搜索条件已修复,则只需跳过数据和搜索条件表并使用指标列。
不幸的是它是一个过程,没有捷径或公式。