我想在Excel中创建一个宏,用于汇总与2个ID列生成的复合ID匹配的行中的数据。在我的excel工作表中,每一行都有2个主要ID列:ID_1
是主键,而ID_2
是辅助键,从中我只关心前2个字母(使用{ {1}})。我想用相同的LEFT
和ID_1
的前2个字母对行进行分组,并报告ID_2
,SUM
和{{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 示例中那样散布!我仍在尝试一次对它们进行排序,但我无法通过它。)
答案 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 & "*")
,然后向下复制。