根据行列格值双向查询 Excel 交叉表
例题描述和简单分析
有 Excel 文件 book1.xlsx,如下所示:
A |
B |
C |
D |
|
1 |
name |
b |
||
2 |
date |
2000/1/2 |
||
3 |
price |
|||
4 |
||||
5 |
||||
6 |
date/price |
a |
b |
c |
7 |
2000/1/1 |
1 |
2 |
3 |
8 |
2000/1/2 |
4 |
5 |
6 |
9 |
2000/1/3 |
7 |
8 |
9 |
10 |
2000/1/4 |
10 |
11 |
12 |
11 |
2000/1/5 |
13 |
14 |
15 |
12 |
2000/1/6 |
16 |
17 |
18 |
现需要根据 B1 中的 name 值和 B2 中的 date 值,在 A6:D12 区域的数据表中找到对应的 price 填入 B3。例如,当 B1 为 b,B2 为 2000/1/2 时,计算出 B3 为 5,结果如下:
A |
B |
C |
D |
|
1 |
name |
b |
||
2 |
date |
2000/1/2 |
||
3 |
price |
5 |
||
4 |
||||
5 |
||||
6 |
date/price |
a |
b |
c |
7 |
2000/1/1 |
1 |
2 |
3 |
8 |
2000/1/2 |
4 |
5 |
6 |
9 |
2000/1/3 |
7 |
8 |
9 |
10 |
2000/1/4 |
10 |
11 |
12 |
11 |
2000/1/5 |
13 |
14 |
15 |
12 |
2000/1/6 |
16 |
17 |
18 |
解法及简要说明
Excel中加载插件 ExcelRaq.xll 后。
在 B3 格输入公式:=esproc("=?1.concat@nc().import@tc().select(#1==?2).field(?3)",A6:D12,B2,B1),即可实现需求。
https://stackoverflow.com/questions/63655576/return-a-value-based-on-multiple-conditions-in-excel
英文版