您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
excel中实现跨工作薄省市级联
发布时间:2022-11-16 22:23:35编辑:雪饮阅读()
最近工作上遇到需要用程序导出一个excel模板,模板上需要有上下级分类选择的功能,就算是固定两级分类,实现起来也挺复杂,如果无限极更可怕。而且关于级联操作时候那个id的问题,也好像没有什么好的解决方案。
那么后来说服产品把这个功能干掉了,毕竟开发成本在哪里摆着呢。
那么事后,当然做为程序员大多数都是比较要强的,程序代码去实现比较复杂,起码原生excel我们应该手动能实现这样的上下级级联关系的操作吧。
那么有查到资料是通过在同一个工作薄里面建立一片区域来存放数据,然后另外一片区域用来引用并展现这些数据的级联关系。
这样看起来不够优雅,我这里在其基础上实现了跨工作薄的级联选择操作。
工作薄province用来存放级联结构数据
这里我们需要有省列表给展示的sheet1工作薄的“省”下拉,所以我们需要选择省份这一行然后”公式=》根据所选内容创建=》首行”(这里仅勾选”首行”)
然后在sheet1工作薄里面“省”这列从数据行开始选择,有几个省就选择几行(应该可以动态设置从”省”所在行的下一行到末尾行吧?)(当然我这里是做好了的,所以可以看到省份哪里已经有数据了,没有做好前就是选择的空单元格,但是仍然有效就是了)然后“数据=》数据验证=》允许(设置为序列),来源(设置如这里是=province!$1:$1(也可以点击右边那个图标然后在province中选择刚才创建的那个province中的根据数据创建的首行))”
然后对于级联的第二级则是如这里“市”列同样像省列一样选择好多行数据行后设置数据验证,同样是序列,来源就要变下了,来源用indirect函数传入参数为第一个省份的单元格的位置,这里如”=indirect($A2)”,我这里理解为像是从A2开始向A3,A4….依次顺延产生我们二级级联的感觉。
最后附上该excel留作纪念
关键字词:excel,跨工作薄,省市,级联,indirect