在[VBA宏]中汇总具有两个主要ID的记录

时间:2018-08-07 19:43:01

标签: excel vba

我想在Excel中创建一个宏,用于汇总与2个ID列生成的复合ID匹配的行中的数据。在我的excel工作表中,每一行都有2个主要ID列:ID_1是主键,而ID_2是辅助键,从中我只关心前2个字母(使用{ {1}})。我想用相同的LEFTID_1的前2个字母对行进行分组,并报告ID_2SUM和{{1}中的value }列。

在下面的示例图片中,我想将count列中的数据转换为sum列中的数据

因此,在此示例中->我们有6条记录 1015 (ID_1),其中包含3个不同的ID_2( AB AZ AE )。我想将它们总计为一个单元格( 1015 AB 1015 AZ 1015 AE ),每个记录都具有(是3个记录: 1015 AB ,VALUE为2,3,4,所以结果我只想获得一行 1015 AB 9 (总和的 4 计数的总和) 17 (( value 的总和* count ))。请务必注意,此 17 并非来自 9 * 4 。它是= sum(I4:I6) (但它可能像下面的 1200 FF 示例中那样散布!我仍在尝试一次对它们进行排序,但我无法通过它。)

enter image description here

1 个答案:

答案 0 :(得分:0)

在D中添加一个帮助列,以组合ID_1和ID_2的前2个字符。 =A4 & LEFT(C4,2)。复制下来,然后转到L4并输入:

=+INDEX($D$4:$D$25,MATCH(0,COUNTIF(L$3:L3,$D$4:$D$25),0)

并按住Ctrl + Shift + Enter使其成为数组函数。向下复制以获得唯一组合的列表,然后将这些值分成单独的列。

最后输入数字,将其放在第4季度:

=SUMIFS(E$4:E$25,$A$4:$A$25,M4,$C$4:$C$25,O4 & "*")

,然后向下复制。