根据行列格值双向查询 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
英文版