定义名称+indirect:另类交叉查询
你好,我是刘卓。欢迎来到我的公号,excel函数解析。昨天分享了用定义名称引用图片的方法。今天接着来分享定义名称的其他用法,和indirect结合使用,可以实现一些”意想不到“的效果,比如另类交叉查询以及制作2级下拉菜单。
=INDIRECT(F2) INDIRECT(G2)
这个公式是什么意思呢?其实就是两个区域的交集。比如下图姓名选择何洁素,科目选择数学,实际就是B8:D8与C2:C11的交集,如标黄的部分,最后返回的结果是80。
两个区域之间用空格相连表示它们的交集,比如B8:D8 C2:C11代表B8:D8与C2:C11的交集。你可以在单元格中输入公式=B8:D8 C2:C11,看它返回的结果是不是80。
其实这里就用到了定义名称。选择左表的区域,点【公式】-【根据所选内容创建】,在弹出的对话框中选择【首行和最左列】,确定。然后点击名称管理器,可以看到里边已经有了很多刚定义好的名称。
每个姓名和科目都被定义为名称,并且引用相应的区域,比如高惠秀这个名称引用的区域是B5:D5。数学这个名称引用的区域是C2:C11。简单来说就是,姓名引用行方向的区域,科目引用列方向的区域。
如下图所示,当我选择B8:D8的区域时,它自动显示出何洁素这个名称,因为B8:D8已经被定义为何洁素这个名称了。选择C2:C11的区域时,自动显示为数学这个名称。求它们的交集,公式为=何洁素 数学。
既然求交集的公式可以写为名称的交集,那么H2单元格的公式能否写为=F2 G2呢?结果为#null!错误值,也就是F2和G2没有交集。因为此时F2返回的不是何洁素的名称,而是"何洁素" ,可以在公式栏选中F2按F9查看结果。
外面多了一对双引号,就变为了文本型的引用。如果不理解,可以按下面的”粗暴“的等量代换理解。何洁素=B8:D8,"何洁素"="B8:D8"。所以需要用indirect将文本型的引用变成真正的引用。
INDIRECT(F2)=INDIRECT("何洁素")=INDIRECT("B8:D8")
https://pan.baidu.com/s/1ER_jTxRpT4n1DyAHFq5mqw