首先,我想明确表示我是VBA的新手,但是我的配方相当不错。
我正在创建一个基于广告系列的预算,每个广告系列都有子活动。然后,我需要将每个子活动总结为他们所属的每个广告系列的顶线。
A B C D E F
1 Campaign Title Identifier Activity Jan Feb Mar
2 Campaign 1 Primary
3 Campaign 1 Sub Advertising 200 300
4 Campaign 1 Sub Promotion 300
5 Campaign 1 Sub PR 100
6 Campaign 2 Primary
7 Campaign 2 Sub Advertising 500
因此,对于B列中存在“主要”的每一行,工作表会自动将D,E,F列中的行值相加,直到下一个“主要”行,并将总数添加到顶部主线。所以D2 = SUM(D3,D4,D5),D6 = Sum(D7)......等等。
现在,如果工作表已修复,我只需将Sum(D3:D5)添加到每个主要行并拖动,但这将是针对具有不同活动量的多个人将插入任意数量的活动和子活动,保证他们会犯错误,必须添加总和公式。
我希望有一些神奇的VBA会自动添加总和,如果一行有主要内容,并动态地知道它们会一直上升到下一个“主要”行?
答案 0 :(得分:0)
=IF($C2="primary", SUM(E3:INDEX(E3:E9999, IFERROR(MATCH("primary", $C3:$C9999, 0)-1, MATCH("zzz", $C3:$C9999)))), TEXT(,))