Excel 如何在VBA中按行分组,使x行中的值唯一,y行中的值相加?
VBA中是否有与pandas(Python)中的group by函数等效的函数?groupby函数执行以下操作Excel 如何在VBA中按行分组,使x行中的值唯一,y行中的值相加?,excel,vba,Excel,Vba,VBA中是否有与pandas(Python)中的group by函数等效的函数?groupby函数执行以下操作 该行本质上返回每个唯一的名称,在Apples列中包含每个名称的Apples的总和。当前,我将数据添加到链接到透视表的工作表中(我使用宏刷新透视表时间),第二个工作表从透视表复制数据并将其硬粘贴。在第二张表中,我使用一些vlookups和其他函数来计算一些额外的数据。但我更喜欢按第一张工作表中的数据分组,这样我就不需要数据透视表和第二张工作表(更干净、更清晰的文件、更小的文件等)。使
该行本质上返回每个唯一的名称,在Apples列中包含每个名称的Apples的总和。当前,我将数据添加到链接到透视表的工作表中(我使用宏刷新透视表时间),第二个工作表从透视表复制数据并将其硬粘贴。在第二张表中,我使用一些vlookups和其他函数来计算一些额外的数据。但我更喜欢按第一张工作表中的数据分组,这样我就不需要数据透视表和第二张工作表(更干净、更清晰的文件、更小的文件等)。使用数据透视表。@ScottCraner感谢您的回复!对于一个简单的任务来说,pivot表感觉很麻烦。但在你看来,这是唯一的解决办法?这是最简单的。另外,您必须循环行以获得唯一列表,然后再次循环以获得总和。如果您的数据来自数据库,请执行以下操作:
select name,sum(apples)as Num from TableName group by name
@10uss来自mnieto的注释是您将使用的SQL,以从数据源获得所需的输出。如果您不熟悉所提供的查询,这听起来似乎不适用于您的数据源。Pivot表是目前为止最简单的解决方案。一旦你设置一次,你所要做的就是刷新。。。
df.groupby(['Name']).sum()