Excel 将查询结果填充到另一工作表

例题描述和简单分析

某 excel 文件中,sheet2 是数据待查片区,其中 A 列是起始时间,B 列是截至时间,且每行的时间段均不重复。部分数据如下:


A B C D E F
1 this is a title
2 date period 2wk HH WPH WCP WPL
3 2018/7/10 2018/7/14 0.7839 0.7729 0.772 0.7655
4 2018/7/17 2018/7/21 0.799 0.794 0.7909 0.7599
5 2018/7/24 2018/7/28 0.8069 0.8007 0.7911 0.7783

现在要输入日期参数,从上述片区找到符合条件的一行数据,取其中的 C-F 列,由行转列,并填入 shee1 的 C2:C5。假如输入 2018/7/18,则 sheet1 应当如下:


A B C
1
result below
2
2wk HH 0.799
3
WPH 0.7729
4
WCP 0.772
5
WPL 0.7655

解法及简要说明

使用 Excel 插件 SPL XLL

在 A1 输入日期参数比如 2018/7/18,C2 中写入公式:

=spl("=?1.select@1(?2>~(1) && ?2<=~(2)).to(3,)",Sheet2!A3:F5,A1)

如图:

..

简要说明

按时间段查询序列。A1是日期参数,比如2018/7/18。注意日期格式应和Excel一致,设置为yyyy/mm/dd。从第3个成员开始,取该序列余下的成员。

问答搜集

https://stackoverflow.com/questions/63840410/lookup-data-based-on-a-date-that-falls-between-two-dates