列方向区间筛选并聚合

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

现在要根据G1H1里的月份参数,对这两个起止区间内的数据进行求和。

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)

Picture1png

函数 pselect 可获取符合条件的成员的位置。(N)表示第 N 个成员,N 是整数序列时表示相应位置上的多个成员。to(2,) 表示取第 2 到最末的成员,~ 表示当前成员。
来源:https://stackoverflow.com/questions/78163830/excel-sumifs-with-dynamic-columns