如何计算跨周期同ID数据的仅增长/仅下降部分总和?
仅统计数据增长/下降部分总和的解决方案
方案一:辅助列法(适合数千条数据,直观好维护)
- 先给原始数据加个辅助列,比如叫「年度差值」,用
XLOOKUP匹配同一个ID的2020和2019年数值,算出差值:
(这里假设2019年数据在每ID的第一行,2020年在第二行,要是顺序反过来,就把公式里的减数和被减数调换)=XLOOKUP([@ID], [ID], [Value], , , 2) - [@Value] - 之后直接用条件求和:
- 增长总和(只加正差值):
=SUMIF(辅助列, ">0", 辅助列) - 下降总和(把负差值转成正数后求和):
=SUMIF(辅助列, "<0", 辅助列) * -1
- 增长总和(只加正差值):
方案二:无辅助列数组公式(一步到位)
不想加辅助列的话,直接用SUM结合MAX/MIN过滤掉不需要的正负值:
- 增长总和(仅统计2020年比2019年高的部分之和):
=SUM(MAX(XLOOKUP(ID, ID, Value, , , 2) - Value, 0)) - 下降总和(仅统计2020年比2019年低的部分之和,结果取正):
要是你的数据是按列存年份(比如A列ID,B列2019值,C列2020值),公式可以简化成:=SUM(MIN(XLOOKUP(ID, ID, Value, , , 2) - Value, 0) * -1)
增长总和:=SUM(MAX(C:C - B:B, 0))
下降总和:=SUM(MIN(C:C - B:B, 0) * -1)
数据透视表调整方案
你之前用的Difference from功能其实可以改改用法:
- 把ID拖到行区域,年份/月份拖到列区域,Value拖到值区域两次
- 对第一个值字段设置「值显示方式」为
Difference from,基准选January 2019,然后给这个字段加值筛选,只保留大于0的项,求和就是增长总和 - 对第二个值字段同样设置
Difference from,值筛选选小于0,求和后把结果转成正数就是下降总和
内容的提问来源于stack exchange,提问作者Stephan_Rossi
相关产品推荐
相关产品推荐

