查找行列交叉处的数据,也就是二维查询,可以有多种方式,最常用的莫过于 index match、offset match。
今天要教大家一种新的方法,直接写出要查询的列标题和行标题,就能查询出交叉处的结果。
案例:
下图 1 是一张评委打分表,有关这个案例的详情,可参阅 Excel专为评委打分规则而生的函数,去掉最高、最低分,求平均值。
在下图 2 中,只要在公式栏的“=”后面输入“列标题 行标题”,就能查出交叉处的分数。
也可以做成下拉菜单的效果,免去手工输入,效果如下图 3 所示。
解决方案:
1. 选中整个数据表 --> 选择菜单栏的“公式”-->“根据所选内容创建”
2. 在弹出的对话框中已经默认选择了“首行”、“最左列”--> 点击“确定”
现在就设置好了,在单元格中输入“= 评委5 诸葛钢铁”,就能查询出交叉处的结果。
接下来制作下拉菜单及查询公式。
3. 在 J1、K1、L1 单元格分别输入表头 --> 选中 J2 单元格 --> 选择菜单栏的“数据”-->“数据验证”
4. 在弹出的对话中选择“设置”选项卡,按以下方式设置 --> 点击“确定”:
- 允许:序列
- 来源:选择“A2:A10”
5. 选中 K2 单元格 --> 选择菜单栏的“数据”-->“数据验证”
6. 在弹出的对话中选择“设置”选项卡,按以下方式设置 --> 点击“确定”:
- 允许:序列
- 来源:选择“B1:G1”
7. 在 L2 单元格中输入以下公式:
=INDIRECT(K2) INDIRECT(J2)
- 因为第 1、2 步中,已经将数据表的内容创建成了名称,所以此时 indirect 函数的参数不加 "",是地址引用,可以获取名称所在单元格的内容。
- 关于有 indirect 函数参数加 "" 和不加 "" 的具体含义和示例,请参阅 Excel indirect 函数(1) - 将一列数据排列成m行*n列
现在选择下拉菜单,就能查询出行列交叉处的值。
如果需要的话,还可以同步高亮显示数据表中对应的行列和交叉单元格,具体设置方法请参阅 Excel – 不用VBA,也能制作聚光灯效果。
效果如下图所示。具体步骤就不在本文中重复叙述了。
评论 (0)