如何解决按组的幂查询总和作为新列
因此,我刚开始使用电源查询,只是浪费了一个多小时来寻找可以在许多其他程序中轻松完成的事情。
我只想创建一个新列,总结另一列。对于实例,检查百分比是否正确,然后将其标准化。我不想分组并缩小表。
我一直在左右搜索,并尝试使用类似的东西添加一个新列,例如“ Group Sum”。 = list.sum([Number]) =计算(SUM([Number])
仅获得所有条目200的总和。没有成功。
也许是我,但我真的看不到逻辑。
我现在尝试了
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Group",type text},{"Gender",{"Number",Int64.Type},{"Group Sum",{"Spalte1",Int64.Type}})
#"Added Custom" = Table.AddColumn(#"Geänderter Typ","Group Sum",(i)=>List.Sum(Table.SelectRows(#"Geänderter Typ",each [Group]=i[Group])[Number]),type number )
in
#"Geänderter Typ"
这会导致错误和
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],Int64.Type}}),#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ","Benutzerdefiniert",each Table.Group(Quelle,{"Group"},{{"Group Sum",each List.Sum([Number]),type nullable number}}))
in
#"Hinzugefügte benutzerdefinierte Spalte"
哪个给我一个新列,其中所有条目都显示“表格”
解决方法
这是另外两个选项。这些示例假定您的源表名为Table1。这是我在Excel中查看其来源的方式:
请注意,没有没有“组和”列。该查询将得出该结果。
选项1。
依次单击“添加列”和“自定义列”,然后填写屏幕,然后单击“确定”:
然后通过单击按钮,仅选择“组和”列并单击“确定”来展开新的“自定义”列:
然后将公式栏中的class ProductDetailView(DetailView,FormMixin):
model = Product
form_class = GlobalCommentForm
def post(self,request,*args,**kwargs):
instance = self.get_object() # to get the particular product instance
initial_data = {
'content_type': instance.get_content_type,# get_content_type defined in models.py as a property to get the content type of the model
'object_id': instance.id
}
if request.method == 'POST':
global_comment_form = GlobalCommentForm(request.POST,initial=initial_data)
if global_comment_form.is_valid():
print(global_comment_form.cleaned_data)
global_comment_form.save()
return ....missing.....
return ....missing...
def get_context_data(self,**kwargs):
particular_product = self.get_object() # return the particular product (which pk is given in url)
global_comments = GlobalComment.objects.filter_by_instance(particular_product)
context = super(ProductDetailView,self).get_context_data(**kwargs)
context['global_comments'] = global_comments
context['global_comment_form'] = self.get_form()
return context
更改为Table.Distinct(Table.ExpandTableColumn(#“ Added Custom”,“ Custom”,{“ Group Sum”},{“ Group Sum”})))下方:
发件人:
收件人:
如下面的评论讨论所述,这是基于您的示例的上述M代码,使用Tablelle1,Quelle和#“GeänderterTyp”代替Table1,Source和Changed Type:
Table.ExpandTableColumn(#"Added Custom","Custom",{"Group Sum"},{"Group Sum"})
选项2。
依次单击“变换”和“分组依据”,然后填写以下屏幕,然后单击“确定”:
然后展开“ AllData”列,仅选择“性别”和“数字”列,如下所示:
结果:
,尝试
let Quelle= Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],#"Promoted Headers" = Table.PromoteHeaders(Quelle,[PromoteAllScalars=true]),#"Geänderter Typ" = Table.TransformColumnTypes(#"Promoted Headers",{{"Group",type text},{"Gender",{"Number",Int64.Type}}),#"Added Custom" = Table.AddColumn(#"Geänderter Typ","Group Sum2",(i)=>List.Sum(Table.SelectRows(#"Geänderter Typ",each [Group]=i[Group]) [Number]),type number )
in #"Added Custom"
,
分组和加入方法
我现在已经看到了一些方法来做到这一点,但我认为最有效的可能是一种基于以前的评论和答案的分组和加入方法。它需要一行:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],#"Added Custom" = Table.Join(Source,"Group",Table.Group(Source,{"Group"},{{"Group Sum",each List.Sum([Number]),type nullable number}}),"Group")
in
#"Added Custom"
其中的 Table.Group() 部分创建了一个表格,其中包含分组变量(此处为“Group”)的每个唯一值,以及对于这些唯一值中的每一个,其汇总值(所有 [Number] 的总和)此处具有相同“组”值的行)。将这些汇总值附加到原始表上成为 Table.Join() 的工作。 Table.Join() 函数获取四个输入参数:1.) 原始表,2.) 原始表中的分组列(此处为“Group”),3.) 汇总表(即 Table 的输出。 Group() 函数在这里)和 4.) 汇总表中的分组列(这里也称为“组”)。
我对此进行了测试并得到如下所示的结果:
注意:我更改了问题中的 Number 列值以显示代码正在运行。在原始问题中提供的示例中,两个组的组总和均为 100,这似乎使另一个答案中建议的方法看起来有效,但实际上无效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。