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