Office散文-记INDIRECT和IF函数

今日帮助友人解决了一个Excel的难题,很开心,特记录下来.

出于表格本身的保密考虑,就不再上传具体内容的截图,特把解题思路和最终实现的公式记录下来.

先说一句定场诗:鲁迅先生说过, 真正的Office高手Excel玩儿的溜...


言归正传:

下午时候,一位甲方的壕友人向我咨询Excel问题,要求能够让用户自由的,从表格的下拉菜单中选择对应的内容.

我一听,这还不简单?!身为微软官方认证的Office大师,Excel高级专家,这还不是随手拈来,于是就拍拍胸脯,"包在我身上!".

等具体需求过来后,我差点儿两眼一黑...玄中玄,秒中秒,悬念之中有悬念,问题之中有圈套...

 六大"产品品牌",每个产品品牌旗下包括四大"产品细类",每个"产品细类"包括从0个到61个不等的"具体产品"

要求用户从下单菜单中选择了某个"产品品牌"后,后续的"产品细类"列中需要"具体产品"与"产品品牌"自动对应上,注意,是自动对应上...

最初解题思路,用"公式"选项卡下的"名称"功能为主,通过名称功能来连接:

1. "产品细类"与"具体产品"的逻辑关系

2. "产品品牌"与"产品细类"的逻辑关系

3. 通过INDIRECT函数来对产品细类取值.

多次尝试,无果.因为 <数据验证>功能中不支持对于<名称>的跨表引用.

于是思路回到了笨方法上,用IF条件来实现对数据有效的验证.同时注意好绝对引用和相对引用,以方便复制表格.

于是,四大产品细类,编写了如下公式:





Product Line

=PL!$A$3:$A$8

细类1

=IF($U2=PL!$A$3,PL!$C$3:$C$10,IF($U2=PL!$A$4,PL!$G$3:$G55,IF($U2=PL!$A$5,PL!$K$3:$K$16,IF($U2=PL!$A$6,PL!$O$3:$O$65,IF($U2=PL!$A$7,PL!$S$3:$S$6,IF($U2=PL!$A$8,PL!$W$3:$W$10,$AF$1))))))

细类2

=IF($U2=PL!$A$3,PL!$E$3:$E$9,$AF$1)

细类3

=IF($U2=PL!$A$3,PL!$D$3:$D$4,IF($U2=PL!$A$4,PL!$H$3:$H$29,IF($U2=PL!$A$5,PL!$L$3:$L$7,IF($U2=PL!$A$6,PL!$P$3:$P$21,IF($U2=PL!$A$7,PL!$T$3:$T$5,IF($U2=PL!$A$8,PL!$X$3:$X$4,$AF$1))))))

细类4

=IF($U2=PL!$A$3,PL!$F$3:$F$35,IF($U2=PL!$A$4,PL!$I$3:$I$32,IF($U2=PL!$A$5,PL!$M$3:$M$7,IF($U2=PL!$A$8,PL!$Y$3:$Y$10,$AF$1))))

本题涉及到的Excel知识点包括:

绝对引用与相对引用/数据有效/数据有效来源/名称功能/INDIRECT函数/IF函数...

于是,愚公,移山,完成了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,343评论 10 200
  • 人说,当你找到一个可以相处时无言,却不觉得尴尬的人时,两个人就可以过日子了。因为这就是生活的宿命,没有一颗心能永远...
    念语阅读 260评论 0 0
  • 想写很多,一点一点慢慢来,今天做了一个很大的决定,关乎未来,是很特别的一天。我没那么坦率,今天却意外的想分享...
    fangyuanjili阅读 200评论 0 0
  • 电话, 它是一种联系情感的秘密工具, 无论相隔多远, 在接通的那一刻, 便连接了彼此想念的心。 现在, 接电话也变...
    小剌的天下阅读 380评论 0 0