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个成员开始,取该序列余下的成员。
英文版