列方向区间筛选并聚合
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