今天在用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,如需转载请自行联系原作者

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

  1. Ant Design of Vue +TS 表单动态增加数据验证卧坑姿势

    文章目录 Update 20210601 Update 20210525 原文: 1.a-form的model 2.获取数据 源码 Update 20210601 今天做别的页面的时候发现又取不到数据 ...

  2. solr-cloud 集群动态增加、删除节点

    本次讲述动态增加节点基于上一章集群搭建的基础上来讲:https://blog.csdn.net/u013490585/article/details/86494476 上一章的例子中用了3台zk,4台 ...

  3. aspx 追加html标签,ASP.NET动态增加HTML元素的方法实例小结

    本文实例讲述了ASP.NET动态增加HTML元素的方法.分享给大家供大家参考,具体如下: 在使用asp.net进行web开发的时候页面中的 中的信息可以通过asp.net的cs文件动态指定. 1.动态 ...

  4. activiti动态增加节点_图神经网络之动态图

    图这种结构普遍存在于人类社会生活中,如互联网中网页间的互相链接会构成图.网民购买商品会构成"网民-商品"图.人和人的交流会构成图.论文的互相引用也会构成图.有许多任务需要根据这些图 ...

  5. js动态增加,删除td,tr,table,div

    js实现的动态添加,删除table内容: 截图如下: 1. 2. 源代码: main.css body {background-image: url(../images/qiantai/bg.png) ...

  6. java 动态添加定时器_quartz实现任务动态增加和删除

    场景 这几天做项目的时候遇到了个状态自动切换的场景.该场景具体情况如下: 用户可以创建多个活动 活动有开始时间和结束时间 活动有个状态:未上线.未开始(上线但未到开始时间).进行中(上线且处于开始时间 ...

  7. jQuery动态增加表格一行和删除一行

    今天在处理表格的动态增加一行,和删除一行,一开始用js,但是写起来有点复杂,而且不好控制,最后还是用了jQuery,很轻松的就搞定了,代码如下: $(document).ready(function( ...

  8. ligerui_ligerTree_005_动态增加“树”节点

    动态添加ligerTree节点:效果图: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 <%@ page language= ...

  9. hive动态分区shell_Hive/Shell 创建Hive 库 ,表脚本,Hive 动态增加分区脚本

    最近工作中使用到了Hive,  并对Hive 的数据库,表完成创建. 创建的表为分区表,也涉及到了分区表 的按天动态增加分区. 代码组织结构: 创建数据库: create_dmp.hql --dmp ...

最新文章

  1. 刚出炉!程序员人才补贴:单项目最高补贴1000万元
  2. 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解
  3. 基于 Spring Security OAuth2和 JWT 构建保护微服务系统
  4. 网络断网远程计算机会自动修复么,网络断网不怕,教你自己动手修复
  5. 网上图书商城项目学习笔记-022易宝支付
  6. 插件框架篇一之scrollbars
  7. 教育心理学有一句名言
  8. AD画PCB常规问题分析
  9. 投资学U18 股票估值 课后习题解读
  10. 微商潮牌怎么引流?成功的人不是赢在起跑点
  11. 特殊的搜狗拼音输入法
  12. Matplotlib坐标轴范围
  13. xz压缩解压工具的安装
  14. 【自然语言处理】【大模型】BLOOM:一个176B参数且可开放获取的多语言模型
  15. STM8L151的IAR工程编译报错Fatal Error[Pe035]: #error directive: “Please select first the target STM8L...
  16. 每个人心中都是有那一颗朱砂痣,不是美人却是美食
  17. codejam round1c第二题
  18. php文本转换为html,PHP转换文本框内容为HTML格式的方法
  19. 盘点游戏场景建模师必备软件有哪些?
  20. 浅谈电子商务的数据分析

热门文章

  1. Single Image Reflection Removal
  2. 程序分析-Slice,深度神经网络动态slice
  3. AbstractHandlerMapping$PreFlightHandler can‘t be cast to springframework.web.method.HandlerMethod
  4. 一款针对百某盘的神器
  5. 哪些网站帮你打开了新世界的大门
  6. 合天网安weekly系列ctf实战 | 第八周 | 随意的上传wp
  7. 银行家算法——C++实现 [ 开源代码 + 详细解析 ]
  8. RIP协议。水平分割,毒性逆转,触发更新,抑制计时
  9. 国内IT公司病的有多重?技术圈交际花谈软件研发管理怪现状
  10. 荣耀6plus android6.0,荣耀6PLUS升级安卓6.0(emui4.0)感受