列方向区间筛选并聚合
Excel表格的列由按顺序排列的月份组成,月份是日期反显而成,比如Jan实际是1/1/2023。
A | B | C | D | |
1 | ||||
2 | Jan | Feb | Mar | |
3 | Sales | 10000 | 15000 | 20000 |
4 | COGS | 5000 | 7500 | 10000 |
5 | Expenses | 2000 | 2000 | 2000 |
6 | Net Profit | 3000 | 5500 | 8000 |
现在要根据G1、H1里的月份参数,对这两个起止区间内的数据进行求和。
F | G | H | I |
Start Month | Jan | End Month | Feb |
Sales | 25000 | ||
COGS | 12500 | ||
Expenses | 4000 | ||
Net Profit | 8500 |
使用 SPL XLL
=spl("=p=(d=?1)(1).pselect@a(between(E(~),E(?2):E(?3))),d.to(2,).(~(p).sum())",B2:D6,G1,I1)
函数 pselect 可获取符合条件的成员的位置。(N)表示第 N 个成员,N 是整数序列时表示相应位置上的多个成员。to(2,) 表示取第 2 到最末的成员,~ 表示当前成员。
来源:https://stackoverflow.com/questions/78163830/excel-sumifs-with-dynamic-columns
英文版 https://c.scudata.com/article/1722821146328