如何用SUM与VLOOKUP组合公式实现按起止年份汇总百分比?
按年份区间汇总百分比的公式实现方案
原始数据
| Year | V1 | V2 | V3 |
|---|---|---|---|
| 2022 | 1% | 2% | 3% |
| 2023 | 3% | 1% | 2% |
| 2024 | 4% | 3% | 1% |
| 2025 | 1% | 4% | 2% |
需求与预期结果
需根据指定的起始年份和结束年份,查找并汇总对应指标的百分比,预期输出如下:
| Value | StartYear | EndYear | CumulativePercentage |
|---|---|---|---|
| V1 | 2022 | 2025 | 9% |
| V2 | 2023 | 2024 | 4% |
| V3 | 2022 | 2023 | 5% |
问题:是否可通过单个公式实现该需求?
可以用单个公式实现,以下分不同工具给出方案:
Excel 方案
假设原始数据位于A1:D5区域,预期结果的累计百分比单元格(以D2为例)可使用以下公式:
- 兼容旧版Excel的数组公式(输入后按
Ctrl+Shift+Enter确认):
=TEXT(SUM(INDEX($B$2:$D$5,MATCH(ROW(INDIRECT($B2&":"&$C2)),$A$2:$A$5,0),MATCH($A2,$B$1:$D$1,0))),"0%")
- Excel 365/2021及以上版本的动态数组公式(直接回车即可):
=TEXT(SUM(FILTER(INDEX($B$2:$D$5,,MATCH($A2,$B$1:$D$1,0)),$A$2:$A$5>=B2,$A$2:$A$5<=C2)),"0%")
Google Sheets 方案
公式逻辑与Excel动态数组版一致,直接使用:
=TEXT(SUM(FILTER(INDEX($B$2:$D$5,,MATCH(A2,$B$1:$D$1,0)),$A$2:$A$5>=B2,$A$2:$A$5<=C2)),"0%")
公式逻辑说明
MATCH($A2,$B$1:$D$1,0):定位当前指标(V1/V2/V3)在原始数据中的对应列FILTER/INDEX+MATCH:筛选出该列中年份处于起始-结束区间内的数值SUM:对筛选后的数值求和TEXT:将求和结果格式化为百分比形式
内容的提问来源于stack exchange,提问作者SSG_08
相关产品推荐
相关产品推荐

