商业数据分析从入门到入职(3)Excel进阶应用
分类汇总
Excel中的数据可以通过组合实现折叠部分数据,还可以打开数据,如下:
有很多时候,需要对某一类数据进行汇总,如产品分类为Technology的订单的总销售额为多少,如下:
可以看到,要进行分类汇总,需要先进行排序; 在完成分类汇总后,自动实现组合,分为3个等级,1级为所有行的Sales总计,2级为三个商品种类的Sales汇总,3级为所有订单信息; 要想将汇总结果复制到其他地方,需要在定位条件中选择可见单元格。
也可以删除分类汇总,如下:
还可以进行多个汇总,如下:
分类汇总可以自动生成一列数据,可以更快速地定位单元格。 这可以应用到给多个多行单元格合并,如下:
显然,实现了预期的效果。
数据有效性与保护工作表
还可以对数据输入进行限制,如果不合法则不允许输入,此时需要验证数据的有效性。 如下:
可以看到,可以进行数值范围限制; 可以提供选项进行选择; 可以限制位数; 还可以修改提示弹出框; 同时,只有在输入、编辑时才会触发输入限制。
这个特性可以用来限制其他用户改写数据,即保护工作表,如下:
显然,此时修改数据都会报错。
公式与函数
公式用=
开始,简单使用如下:
可以看到,实现了两个数的相加,但是要加的数很多时,如果手动输入,显然会很麻烦。
此时需要用新的工具进行计算,即函数,如求和就用sum()
函数,如下:
可以看到,不仅支持求和计算,而且在数据改变之后,结果也会同步改变,并且可以复制函数到其他位置。
Excel公式的组成部分:
函数、引用、运算符和常量。
比如对于公式=PI()*A@^2
:
组成部分包括:
- 函数
如
PI()
函数返回pi值3.14159…。 - 引用 如A2返回单元格A2中的值。
- 常量 直接输入到公式中的数字或文本值,例如2。
- 运算符 ^运算符表示数字的乘方,而*运算符表示数字的乘积。
&
是连字符,可以连接两个文本,如下:
在Excel中也有真和假,即TRUE和FALSE,TRUE对应1,FALSE对应0。
对一列根据条件进行不同赋值,如下:
可以看到,TRUE和FALSE可以参与运算;
在使用表格中的值代替常量进行计算时,出现了引用的问题,默认一般是相对引用,即在进行填充时一般是使用的相同行对应列的数据,如=(A3<>"中部地区")*8+K3
、=(A4<>"中部地区")*8+K4
,而此时K4
位置的值为空,数值时默默认为0,因此结果为8;
此时要想达到目标,需要使用绝对引用,即使用K3
位置的值,此时只需要在行列序号前加$
符号即可,可以选中K3
按快捷键F4
即可实现,变为=(A3<>"中部地区")*8+$K$3
、=(A4<>"中部地区")*8+$K$3
等。
还可以进行混合引用,即位置的行和列中只有一个改变,另一个不改变,不改变的用$
修饰。
如下:
显然,通过混合引用实现了打印九九乘法表。
函数基本用法如下:
计算并填充空值如下:
显然,要填充的值都是左边第二个数除以左边第一个数,所以能一次性计算出来。
但是很多时候,数据不是这么分布的,就得灵活应变,如下:
可以看到,此时用到了自动求和工具。
逻辑判断IF
之前判断是否是中部地区并根据两种情况计算是使用TRUE和FALSE实现的,也可以使用IF来实现。
if判断的简单使用如下:
可以看到,如果区域为中部地区,销售单价即为建议单价,否则为建议单价+8.
还可以进行嵌套使用:
还可以进行更复杂的嵌套,如下:
显然,if的结果可以进行相加等运算。
除了使用if嵌套,还可以使用连字符&
,如下:
显然,连字符也能实现同样的效果,并且用到了逻辑运算且运算AND。
有时候出现错误时,会出现错误提示,可以根据需要进行调整,使用IFERROR
、IFNA
、ISERROR
等。
如下:
现以退休为例进一步说明逻辑判断的优化: 企业职工退休年龄是男年满60周岁; 女工人年满50周岁,女干部年满55周岁。
那么可能有以下几种情况: 满60岁男职工,退休; 60岁以下男职工,不退休; 满50岁女职工,退休; 50岁以下女职工,不退休; 满55岁女干部,退休; 55岁以下女干部,不退休;
要使用一般的if判断,可能要嵌套很多if语句,但是其实是可以简化的,因为覅判断的实质就是条件为TRUE执行一种情况、为FALSE时执行另一种情况,因此可以简单将退休与否分为退休和不退休,其中>60岁且是 男
者 >50岁且是女职工
或者>55岁且是女干部
属于退休,其他均属于不退休,此时可以如下:
因此在最终产生的结果只有两种情况时,可以采用这种方式。
COUNTIF
COUNTIF
用于根据条件进行计数,符合某个条件则计数,否则不计数,类似的用法还包括COUNTIFS
、SUMIF
等。
简单使用如下:
计数时使用较复杂的条件如下:
显然,有多个条件时,可以分别计数再进行算术计算。
有多个条件要满足时,还可以使用COUNTIFS
,如下:
此时可以根据多个条件进行计数。
重复
很多时候会出现重复数据,这是可以对数据进行计数,如果计数大于1则说明出现了重复。
如下:
可以看到,数据为文本型数据,在进行计数时会根据前15为进行计数,因此在对A3、A11、A12进行计数时会重复,此时可以通过在后面连接通配符解决。
还可以限制输入重复数据,这是结合数据验证实现的,如下:
案例-报名统计
有一个联系人名单,其中有部分已报名,也有对应的名单,根据已报名名单对所有联系人名单进行统计,是否报名,如下:
显然,很快自动统计出是否报名;
这是通过IF
和COUNTIF
结合使用实现的,Excel中结合各种工具可以实现很丰富的功能。
还可以填充颜色,需要使用到条件格式:
可以看到,对符合条件的数据进行了筛选; 同时数据发生变化时,结果也会同步变化。
SUMIF
和COUNTIF
类似,SUMIF
是根据条件进行求和的,简单使用如下:
待求和数据所在的列和条件所在的列不是同一列时,稍微复杂一点,如下:
显然,此时需要传递3个参数,才能求和。
还可以根据多个条件进行求和,有多种方式,一种方式是增加辅助列拼接两个条件,再进行求和,如下:
可以看到,计算出来的结果是依赖于辅助列的,如果删除或修改辅助列,结果也会发生变化。
还有一种方式是直接使用SUMIFS
函数,如下:
显然,得到了同样的结果。
还可以进行更加灵活的使用,如简写参数,如下:
此时也可以求出结果,这范围选择了全部数据,才可以这么简写,一般条件下应该慎重选择这种方式。
对于一定的库存,需要限制出货量不能超过库存,这也可以通过SUMIF
来实现,如下:
显然,实现了通过SUMIF
来限制输入的效果。
- Model验证系统运行机制是如何实现的?
- CentOS 6.8 部署zookeeper集群
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
- 使用容器进行应用程序路由
- MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel
- ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidatorProviders
- 我所理解的RESTful Web API [设计篇]
- 黑箱难题阻碍了深度学习的普及与发展
- iOS 转场动画探究(一)
- XCode中如何使用事务
- 如何部署编译NDIS驱动的环境(内部资料)
- 深度学习的入门级装机配置推荐
- Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
- GridView绑定小技
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 快速解决Django关闭Debug模式无法加载media图片与static静态文件
- Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
- Django media static外部访问Django中的图片设置教程
- Python图片处理模块PIL操作方法(pillow)
- Android自定义View实现圆环带数字百分比进度条
- Python按照list dict key进行排序过程解析
- Java并发编程的艺术(一)
- Python3.7 读取音频根据文件名生成脚本的代码
- python如何判断IP地址合法性
- 从*Application.java解读SpringBoot
- django实现后台显示媒体文件
- 服务发现与消费--Eureka与Ribbon的联手出击
- 自我加戏,在自闭的边缘尝试高可用的Eureka
- 视频直播系统源码,图片叠加
- SpringCloud初体验--Hello Eureka