引入:

刚开始来公司的时候,听说是做项目管理,感觉非常的高大上,我猜咱们应该有专门的项目管理系统吧?但自从老大每到月底总让我将项目的工时数据和报销数据更新到一张异常复杂的excel表格之后,我就知道我是在痴人说梦。。。

这个项目成本汇总表具体有多复杂呢?我们可以浅看一下其中一个子表的表头:

这是仅仅一组项目信息的示意图,前A、B列是项目的索引,包括项目编号、项目名称,之后E列:每个项目,都对应把项目成本分成了三个类型:成本预算、成本支出,以及成本偏差(=成本预算-成本支出)

E列之后的数据,为项目成本的明细,分为工时数据和报销数据:

首先是工时数据,我们需要从第一行开始看,分别是各个项目阶段,每个项目阶段有不同的人员角色,不同角色的工资不同、所花费的工时也不同,所以不同角色产生的费用,需要分别进行统计:

像下图展示的,便是项目售前阶段商务人员、售前组售前人员以及项目内其他小组的售前工时数据, 每个角色都有三个固定的统计数据:工时(h)、工时(人月)以及工时费用(人月*不同角色的人力基数)。

我们要知道,一个项目的参与角色至少十几种,何况还分不同阶段。这时候肯定很混乱,如果在存储了n多个项目的这个子表里面,需要你快速查找到某个项目某个角色对应的工时费用,ctrl+F找项目编号?还不够,我想要的角色呢?这是如果那个角色藏在表列的中间位置或者末尾,那你就很难受了,鼠标不停的拉动同时目光坚定的扫描刚刚所看到的一切来定位。

有人会说,你不会用筛选器啊?这么复杂的表头,行和列都存在合并单元格,办不到。

让你查几次倒还好,要是你在更新数据的时候得找好几百次,你不疯?

设计一个简单的查询界面,实现在原表之外找到我们想要的数据?

熟悉excel的人都应该会想到了数据透视表吧?非常强大直观的数据汇总与展示,省去了许多公式冗余,以及一些不当的操作对原表格的数据产生的变动。

但别忘了?数据透视表可不支持这样复杂表头的数据源,BBQ了?这可怎么办?

没事,它不支持,我们就再创建一个支持数据透视表的“项目数据提取”表格,把原来那个复杂表格的数据,根据项目编号去查找匹配,加载出这个项目,所有的工时数据,问题自然解决了。

1、最终实现效果展示

这个查询工作簿是完全独立与源数据之外的,利用数据透视表的切片器,还可以对费用类型、项目阶段等进行筛选,从不同角度汇总项目费用,完全不需要,操作到原表格数据。此外,还用到excel宏设置了一些交互的控件, 实现更加人性化的查询操作。

接下来我们一起来看看如何制作这样一个简易的查询工作簿:

2、新建工作目录

新建工作目录,这里要放源数据,在新建一个“信息查询.xlsx”的查询工作簿。

3、创建“项目信息提取”工作表

打开新建的“信息查询”工作簿,命名工作表1为“信息查询-数据上载”。

这个表中存放的是,根据我们在查询界面输入的项目编号,在源数据中查找匹配到不同类型的工时数据。先前所提到的仅仅是一组项目的数据,我们需要合计的,只是每个角色对应的最基本的工时(h)、工时(人月)、费用(工时费用(人月*不同角色的人力基数)。

 3.1 表头设计(数据划分基础)

也就是说,项目提取出来的数据,需要每个角色都单独录入两行数据(成本预算、成本支出),先以“商务人员”这个角色为例,定下表头。

首先,$A$2单元格是所有数据匹配的源头,当查询界面做好之后,直接“=用户输入的项目编号”,如下图所示:

查询界面还没开始做,所以我们先将某个项目编号的文本填充至$A$2单元格。

如下图所示。

3.2 表格body设计

接下来我们就给所有角色都录入一行数据,最后三列先放空不操作,效果如下:

接下来就是如何根据项目编号去查找匹配的问题了,同样以“商务人员”为例,对于第一条成本预算的数据:

我们用vlookup函数对项目编号查找,是可以匹配到的,“成本预算”的匹配公式写成:

=VLOOKUP($A$2,'[00 各项目成本汇总.xlsx]成本数据'!$A:$DH,7,FALSE)

其中$A$2固定为用户输入的项目编号,查找范围为'[00 各项目成本汇总.xlsx]成本数据'!$A:$DH,其中商务人员对应的工时(人月)在第7列,最后!!精确匹配(False)。记得测试一下是否匹配成功。

以此类推,可以把所有角色的成本预算数据公式都写好了。

而第二行的“成本支出”数据,vlookup函数不再适用。以下图为例,选中项目编号单元格,显示的行号是228行,显然vlookup函数只能返回和项目编号同一行的数据,而成本支出数据所在的行为229行,也就是项目编号的下一行。

这时我们可以用match函数返回项目编号在表格对应的行号,index函数对某一列进行(行号+1)的索引查找,“成本支出”的匹配公式写成:

= INDEX('[00 各项目成本汇总.xlsx]汇总表'!$F:$F,MATCH($A$2,'[00 各项目成本汇总.xlsx]汇总表'!$A:$A,0)+1)

注意match()函数中,最后要精确匹配(0)!!

3.3 “项目数据提取”表格效果展示:

其中项目名称同样采用vlookup函数匹配查找。

4、信息查询界面设计

在“数据提取”工作表同个工作簿中,新建一个新的工作表,将其重命名为“信息查询”,这将是用户查询项目信息的入口。

 4.1 项目编号输入框的设计:

确定了填写项目编号的单元格后,我们将数据提取表格的$A$2单元格,=链接过来:

此时在框内输入任意的项目编号,数据提取的工作表就会自动显示该项目的成本信息了。

 4.2 插入数据透视表

文章开头讲到,数据透视表可以直观的展示、汇总数据,利用切片器做个性化类型筛选。

首先,我们选择“项目数据提取”的表格区域,在excel上方-“插入”,点击插入“数据透视表”:

定好数据透视表存放的位置后,确定插入:

接下来是对数据透视表的字段进行设置,首列是行标签(索引):依次是(项目编号、项目名称、)角色,后三列是工时数据的汇总,汇总依据设置为“求和”。

数据透视表的最后一步是插入切片器,通过切片器筛选不同类型的数据,从不同角度对成本进行汇总、透视。

点击表格区域,excel上方找到“数据透视表分析”,点击“插入切片器”。

切片器相当于每一列的筛选控件,选定一列数据,就会生成一个切片器。这里我需要的是:项目阶段、成本类型以及费用类型。切片器筛选后的效果如下图,这里不再赘述:

4.3 用户交互控件设计

这时我们在输入其他项目编号进行查询,数据透视表并不会自动更新数据,传统的做法是右键数据透视表,“刷新”。但这似乎不是很人性化,如果我们设计一个“查询”的按钮,在每次输入项目编号后,点击这个按钮,就会数据就会进行刷新,这是不是方便了许多?

这里,我们需要用到excel的宏:

excel上方找到“开发工具”,点击“插入”,选择按钮控件,将控件插入到输入框的旁边。

再在开发工具这里,找到“宏”,点击“编辑”,进入代码编写界面:

我们需要将刷新函数插入到这个工作簿的代码之中,我这里命名为Refresh,完整代码:

Sub Refresh()ActiveWorkbook.RefreshAll
End Sub

代码保存后,右键刚刚插入的按钮控件,“指定宏”,指定为刚刚的Refresh()函数,确定。

大功告成!为了美观,最后优化下界面。

其他个性化的需要,自行发挥。

4.4 保存为xlsm格式的工作簿

设计完成的工作簿,需要另存为xlsm格式,

再次打开这个工作簿时,记得启用所有宏,便能正常运行。

excel综合应用(一):信息查询相关推荐

  1. excel制作录入和查询系统_叮咚!您有一份Excel人员信息查询系统,请您查收~

    叮咚!您有一份Excel人员信息查询系统,请您查收~ 打开中-- 1 2 3 open! 哦豁,瞅着还不错哦~ 下面介绍如何制作一个简易的人员信息查询系统. 数据源准备 第一步当然是准备数据源,数据源 ...

  2. 如何在Excel/WPS表格中批量查询顺丰快递信息?

    上期我们讲了如何在Excel/WPS表格中批量查询快递信息(还不知道的小伙伴可以看这里:https://zhuanlan.zhihu.com/p/541529548),由于顺丰快递的隐私保护,我们在查 ...

  3. EOS 账号创建和信息查询

    2019独角兽企业重金招聘Python工程师标准>>> 一个账户可视为在线的访问凭证.nodeos管理着在区块链上发布账户以及与账户相关联的行为.我们通过cleos与nodeos的交 ...

  4. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  5. 1.22 实例:商品信息查询

    综合一维数组和二维数组的相关知识,以及数组排序的多种算法来实现商品信息查询的功能. 假设在仓库系统中,每件商品都有 3 个库存信息,分别是入库量.出库量和当前库存量.定义一个一维数组来存储 5 件商品 ...

  6. 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  7. asp access物流基础信息查询平台毕业设计成品

    asp access物流基础信息查询平台毕业设计成品的网站布局:div css加入 tabole综合布局,一共十八个页面,首页是个登录界面,登录成功之后可以添加.修改.查询.删除信息,然后可以退出. ...

  8. mysql8.0登录不上去怎么回事_速看!智慧团建系统登录平台及信息查询入口

    被逐步的边缘化.作为一款紧凑车型来说.115PS是发动机的最大马力.它也采用了全新的设计手法.在灯光衬托下显得光彩夺目.途胜l这款SUV的侧面车身与途胜的设计有些相似.起亚为这款车全系搭载1.5升的发 ...

  9. 以下不属于计算机综合处理多媒体信息的有,国家开放大学《多媒体应用技术基础》第一-二次形成性考核任务试题...

    国家开放大学<多媒体应用技术基础>第一-二次形成性考核任务试题 http://doc.xuehai.net 国家开放大学<多媒体应用技术基础>第一-二次形成性考核任务试题 第一 ...

最新文章

  1. matlab ga rbf,GA PSO优化的RBF神经网络
  2. 【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
  3. java class文件 代码_java_基础——用代码编译.java文件+加载class文件
  4. Oracle备份还原
  5. 虚拟时代将至:环绕计算才是未来
  6. 光纤 matlab,matlab – 均衡光纤通道的最小均方
  7. 蔚来召回4803辆ES8电动汽车 自燃原因找到了?
  8. python 拆分字符串反斜杠_每日一课 | Python 拆分字符串入到字典里面
  9. 后期处理之一:雾蒙蒙风景照片处理技巧
  10. JQuery中each方法实现
  11. DataFrame基础操作
  12. DVD-Cloner 2022 for mac(DVD光盘刻录工具)
  13. 看单片机原理图-最小系统
  14. Babylongjs-纹理
  15. 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
  16. java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
  17. qt :C4819 著名错误
  18. 基于深度学习目标检测和人体关键点检测的不健康坐姿检测
  19. 河北职高计算机专业高考分数线,河北职高对口本科大学录取分数线
  20. 为什么.bat脚本不断重复执行同一命令

热门文章

  1. android项目飞机大战,Android 项目之飞机大战
  2. [循证理论与实践] Meta分析系列之五:贝叶斯 Meta 分析与 WinBUGS 软件
  3. numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matching ty
  4. CSDN,我来了!kbd哈哈哈哈/kbd
  5. JVM常见命令行及图形工具
  6. 盘点:当今十大备份应用软件
  7. 2020 CM-BERT: Cross-Modal BERT for Text-Audio Sentiment Analysis
  8. 新手真无线蓝牙耳机怎么选?大神推荐高颜值时尚主流蓝牙耳机推荐
  9. Android Studio 加载arr文件.arr文件
  10. android5.0协调布局CoordinatorLayout(第二篇CollapsingToolbarLayout效果实现原理讲解)原理