Excel-用OFFSET和COUNTA实现动态增加下拉列表

简介:
今天在用Excel实现一个需求管理的小工具。Excel的下拉框大家一定都知道,是用数据有效性中的序列来完成的。但是他有个很明显的弊端,就是无法动态的去加入下拉列表中内容,一旦下拉列表内容需要做调整的时候,就需要一个个的重新在数据有效性中的序列中去增加,这是一个相当复杂和容易出错的工作。
如何实现这一需求?
先介绍两个Excel中很有用的两个函数:OFFSET和COUNTA。OFFSET是用来返回一个引用,引用可以是单元格或者一个单元格区域的;而COUNTA是用来返回参数列表中非空值的单元格个数。具体的语法我就不在这里描述了,大家有兴趣可以查看Excel的帮助文档。
这里我想实现这么一个具体的功能:我的Excel有一列叫“PM”,并且我想随时在下拉列表里增加“PM人选(如图一)。见图一,目前PM这列有四个人选,我想动态增加一个PM人选“巨元”,如何做?
(图一) 
步骤一:借助另外一个Sheet,用某一列来定义PM人选(如图二)
(图二)
步骤二:Excel有一个叫名称管理器-定义名称,这个功能类似与我们开发语言中的全部变量,在这里我们定义一个变量名称:PM,并设置引用位置:=OFFSET(CONFIG!$C$2,1,0,COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1,1);这个公式是核心,简单解释一下:
1)COUNTA(CONFIG!$C$2:CONFIG!$C$256)-1;返回值:4
2)OFFSET(CONFIG!$C$2,1,0,4,1);返回值:C3:C6的数组
步骤三:在图一中的PM这列使用数据有效性的序列,来源:=PM(就是名称管理器中定义的变量);
步骤四:现在我们可以在图二中PM这列中任意增加、删除、修改内容(增加“巨元”),都会立刻动态同步到图一中的PM下拉列表(显示包括“巨元”在内的五个PM人选的下拉列表)。
大功告成。









本文转自 神相 51CTO博客,原文链接:http://blog.51cto.com/shenxiang/269217,如需转载请自行联系原作者
目录
相关文章
|
easyexcel 数据库
【EasyExcel】第一篇:动态导入excel,生成对应数据库表
【EasyExcel】第一篇:动态导入excel,生成对应数据库表
|
Java Apache 索引
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
1974 0
|
数据可视化 数据挖掘 数据库
【数据挖掘】用Excel挖掘股权关系并按照年份统计不同类型的亲缘关系在上市公司中的分布和趋势【动态可视化工具】
推荐一个在线制作动图网站 Flourish(https://app.flourish.studio) 无需编程基础就可以做出漂亮的动态图表🎉🎉🎉
454 1
【数据挖掘】用Excel挖掘股权关系并按照年份统计不同类型的亲缘关系在上市公司中的分布和趋势【动态可视化工具】
|
数据处理 开发工具
一分钟教你学会Excel的动态图表
一分钟教你学会Excel的动态图表
一分钟教你学会Excel的动态图表
Excel 2013中单元格添加下拉列表的方法
使用Excel录入数据的时候我们通常使用下拉列表来限定输入的数据,这样录入数据就很少发生错误了。Excel 2013较以前的版本发生了很大的变化,那么在Excel 2013是如何添加下拉列表的呢? 下面Office办公助手的小编就以“性别”中下拉选择男女为例,讲解下Excel 2013中添加下拉列表的方法。
957 0
|
4月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
4月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。