数据分析-excel基础篇
清洗处理类
主要针对文本、格式以及脏数据的清洗和转换。
Trim
用于清除掉字符串两边的空格。
MySQL有同名函数,Python有近似函数strip。
=TRIM(目标单元格)
Concatenate
合并单元格中的内容,还有另一种合并方式是& 。”我”&”很”&”帅” = 我很帅。当需要合并的内容过多时,concatenate可提高单元格合并的效率。
MySQL有近似函数concat。
=Concatenate(单元格1,单元格2……)
Replace
替换掉单元格的字符串,清洗使用较多。
MySQL中有同名函数,Python中有同名函数。
=Replace(指定字符串,哪个位置开始替换,替换几个字符,替换成什么)
Substitute
和replace接近,区别是替换为全局替换,没有起始位置的概念。
=Substitute(要替换的文本,旧文本,新文本,[替换第几个])
=Substitute(要替换的文本,旧文本,新文本,[替换第几个])
Left/Right/Mid
截取字符串中的字符。Left/Right(指定字符串,截取长度)。left为从左,right为从右,mid如上文示意。
MySQL中有同名函数。
=Mid(指定字符串,开始位置,截取长度) #MId默认向右截取
Len/Lenb
返回字符串的长度。
在len中,中文计算为一个,在lenb中,中文计算为两个。
MySQL中有同名函数,Python中有同名函数
=Len("我") >>> 1
=LenB(“我”) >>> 2
Find
查找某字符串出现的位置,可以指定为第几次出现,与Left/Right/Mid结合能完成简单的文本提取
MySQL中有近似函数 find_in_set,Python中有同名函数
语法: =Find(find_text,within_text,start_num) Find_text 是要查找的字符串;
Within_text 是包含要查找关键字的单元格;
Start_num 指定开始进行查找的字符数。 注意事项: 若find_text为空文本,则Find函数返回1;
若within_text无find_text或start_num不大于0或start_num大于within_text长度,则Find函数返回错误值#VALUE!;
find_text中不能包含通配符(*或?)。
应用:
A2=“广东省东莞市东城区…” =FIND("省",A2)【默认start_num为1】 >>>3
A2=“广东省东莞市东城区…” =FIND("东",A2,3) >>>4,start_num是3会跳过前3个字符,因此返回值为4
Search
和Find类似,区别是:Find区分大小写,Search不区分大小写且支持*通配符,用法与Find函数类似。
Text
将数值转化为指定的文本格式,可以和时间序列函数一起看
语法: =Text(值,数值格式) 应用: 销售人员 业绩
小李 2000 =A2&"本月业绩为:"&Text(B2,"$0.00") >>>小李本月业绩为:2000美元
关联匹配类
Lookup
返回向量或数组中的数值。
函数 LOOKUP 的向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值;
语法: = LOOKUP(lookup_value,lookup_vector,result_vector)
lookup_value—函数LOOKUP在第一个向量中所要查找的数值,它可以为数字、文本、逻辑值或包含数值的名称或引用;
lookup_vector—只包含一行或一列的区域l,可以为文本、数字或逻辑值;
result_vector—只包含一行或一列的区域,其大小与 lookup_vector 相同。 =Lookup(查找的值,值所在的位置,返回相应位置的值)
函数 LOOKUP 的数组形式在数组的第一行或第一列查找指定的数值,然后返回数组的最后一行或最后一列中相同位置的数值。
语法: = LOOKUP(lookup_value,array)
array—包含文本、数字或逻辑值的单元格区域或数组,它的值用于与 lookup_value 进行比较
Vlookup
功能是按列查找,最终返回该列所需查询列序所对应的值。
=Vlookup(要查找的值,要查找的区域,返回数据在查找区域的第几列数,匹配方式)
Index
返回表或区域中的值或对值的引用。
数组形式:
语法: =Index(array,row_num,column_num) #Array是一个单元格区域或数组常量
=Index(查找的区域,区域内第几行,区域内第几列)
引用形式:
语法: =Index(reference,row_num,column_num,area_num)
Reference是对一个或多个单元格区域的引用;
Area_num用于选择要从中返回 行和列的交叉点的引用区域。
Match
MATCH函数用途:
1.确定列表中某个值的位置;
2.对某个输入值进行检验,确定这个值是否存在某个列表中;
3.判断某列表中是否存在重复数据;
4.定位某一列表中最后一个非空单元格的位置。
注意事项:MATCH函数不区分大小写。
语法: =Match(lookup_value, lookup_array, match_type) lookup_value:需要在数据表(lookup_array)中查找的值
lookup_array:可能包含有所要查找数值的连续的单元格区域,区域必须是某一行或某一列,即必须为一维数据,引用的查找区域是一维数组。
match_type:表示查询的指定方式,用数字-1、0或者1表示
为1时,查找小于或等于lookup_value的最大数值在lookup_array中的位置,lookup_array必须按升序排列
为0时,查找等于lookup_value的第一个数值,lookup_array按任意顺序排列
为-1时,查找大于或等于lookup_value的最小数值在lookup_array中的位置,lookup_array必须按降序排列 =Match(需要查找的字符,被查找的区域,匹配类型)
Row
返回单元格所在的行
Column
返回单元格所在的列
Offset
OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。
语法: =Offset(指定点,偏移多少行,偏移多少列,返回多少行,返回多少列) 应用:(空白工作表里进行) 公式 说明(结果) =Offset(C3,2,3,1,1) 显示F5单元格中的值(0)
=Sum(Offset(C3:E5,-1,0,3,3)) 对数据区域C2:E4,求和(0)
=Offset(C3:E5,0,-3,3,3) 返回错误值#REF!,因为引用区域不在工作表中
逻辑运算类
逻辑运算返回的均是布尔类型,True和False。
IF
根据逻辑计算返回相应的值
MySQL中有同名函数,Python中有同名函数
语法: =If(logical_test,value_if_true,value_if_false)
And
全部参数为True,则返回True,经常用于多条件判断。
MySQL中有同名函数,Python中有同名函数。
语法: =And(logical1,logical2, ...)
语法: =And(logical1,logical2, ...)
Or
只要参数有一个True,则返回Ture,经常用于多条件判断。
MySQL中有同名函数,Python中有同名函数。
语法: =Or(logical1,logical2, ...)
IS系列
常用判断检验,返回的都是布尔数值True和False。常用ISERR,ISERROR,ISNA,ISTEXT,可以和IF嵌套使用。
常用IS系列函数及功能: =ISBLANK(value) #ISBLANK 值为空白单元格。
=ISERR(value) #ISERR 值为任意错误值(除去 #N/A)。
=ISERROR(value) #ISERROR 值为任意错误值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!)。
=ISLOGICAL(value) #ISLOGICAL 值为逻辑值。
=ISNA(value) #ISNA 值为错误值 #N/A(值不存在)。
=ISNONTEXT(value) #ISNONTEXT 值为不是文本的任意项(注意此函数在值为空白单元格时返回 TRUE)。
=ISNUMBER(value) #ISNUMBER 值为数字。
=ISREF(value) #ISREF 值为引用。
=ISTEXT(value) #ISTEXT 值为文本。
计算统计类
常用的基础计算、分析、统计函数,以描述性统计为准。
Sum/Sumif/Sumifs
统计满足条件的单元格总和,SQL有中同名函数。
MySQL中有同名函数,Python中有同名函数。
SUM函数语法: =SUM(number1,number2, ...) SUMIF函数语法: =SUMIF(range,criteria,sum_range)
SUMIF 函数可以对报表范围中符合指定条件的值求和 SUMIFS函数语法: =SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
该函数可快速对多条件单元格求和
criteria_range1为计算关联条件的第一个区域
criteria1为条件1,条件的形式为数字、表达式、单元格引用或者文本,可用来定义将对criteria_range1参数中的哪些单元格求和
criteria_range2为计算关联条件的第二个区域
criteria2为条件2。和 3) 均成对出现。最多允许127个区域、条件对,即参数总数不超255个
sum_range 是需要求和的实际单元格
Count/Countif/Countifs
统计满足条件的字符串个数
MySQL中有同名函数,Python中有同名函数。
Count函数语法: =Count(value1,value2, ...)
将把数值型的数字计算进去;但是错误值、空值、逻辑值、文字则被忽略 Countif函数语法: =Countif(range,criteria)
参数:range 要计算其中非空单元格数目的区域
参数:criteria 以数字、表达式或文本形式定义的条件 对指定区域中符合指定条件的单元格计数的一个函数 Countif函数用法: 1.求各种类型单元格的个数
(1) 求真空单元格个数:=COUNTIF(数据区,"=")
(2) 非真空单元格个数: =COUNTIF(数据区,"<>") 相当于counta()函数
(3) 文本型单元格个数: =COUNTIF(数据区,"*") 假空单元格也是文本型单元格
(4) 区域内所有单元格个数: =COUNTIF(数据区,"<>"""),如果数据区内有",该公式不成立.
(5) 逻辑值为TRUE的单元格数量 =COUNTIF(数据区,TRUE) 2.求大于或小于某个值的单元格个数
(1) 大于50=COUNTIF(数据区,">50")
(2) 等于50=COUNTIF(数据区,50)
(3) 小于50 =COUNTIF(数据区,"<50")
(4) 大于或等于50 =COUNTIF(数据区,">=50")
(5) 小于或等于50 =COUNTIF(数据区,"<=50")
(6) 大于E5单元格的值 =COUNTIF(数据区,">"&$E$5)
(7) 等于E5单元格的值 =COUNTIF(数据区,$E$5)
(8) 小于E5单元格的值 =COUNTIF(数据区,"<"&$E$5)
(9) 大于或等于E5单元格的值 =COUNTIF(数据区,">="&$E$5)
(10) 小于或等于E5单元格的值 =COUNTIF(数据区,"<="&$E$5) 3.等于或包含某N个特定字符的单元格个数
(1) 两个字符 =COUNTIF(数据区,"??")
(2) 两个字符并且第2个是B=COUNTIF(数据区,"?B")
(3) 包含B =COUNTIF(数据区,"*B*")
(4) 第2个字符是B =COUNTIF(数据区,"?B*")
(5) 等于“你好”=COUNTIF(数据区,"你好")
(6) 包含D3单元格的内容 =COUNTIF(数据区,"*"&D3&"*")
(7) 第2字是D3单元格的内容 =COUNTIF(数据区,"?"&D3&"*")
注:countif()函数对英文字母不区分大小写,通配符只对文本有效 4.两个条件求个数
(1)>10并且<=15 =SUM(COUNTIF(数据区,">"&{10,15})*{1,-1})
(2)>=10并且<15 =SUM(COUNTIF(数据区,">="&{10,15})*{1,-1})
(3)>=10并且<=15 =SUM(COUNTIF(数据区,{">=10",">15"})*{1,-1})
(4)>10并且<15 =SUM(COUNTIF(数据区,{">10",">=15"})*{1,-1})或者=SUM(COUNTIF(数据区,{">10","<15"}))-样本数 补充:三个区域计数: 三个区域中>=60 =SUM(COUNTIF(INDIRECT({"a46:a48","b48:b50","c47:c48"}),">=60"))
补充:(集合运算法)
统计范围,比如5<= x <=7
可以分解为(x>=5)-(x>7)
写为函数:
=countif(range,">=5")-countif(range,">7") Countifs函数语法: =Countifs(criteria_range1,criteria1,criteria_range2,criteria2,…)
参数说明
criteria_range1:为第一个需要计算其中满足某个条件的单元格数目的单元格区域(简称条件区域),
criteria1为第一个区域中将被计算在内的条件(简称条件),其形式可以为数字、表达式或文本
用来计算多个区域中满足给定条件的单元格的个数,可以同时设定多个条件
Max
返回数组或引用区域的最大值
MySQL中有同名函数,Python中有同名函数。
Min
返回数组或引用区域的最小值
MySQL中有同名函数,Python中有同名函数。
Rank
排序,返回指定值在引用区域的排名,重复值同一排名。
SQL中有近似函数row_number() 。
语法: =rank(number,ref,[order])
number 为需要求排名的那个数值或者单元格名称(单元格内必须为数字);
ref 为排名的参照数值区域;
order的为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。 用法: 假设:A列从A1单元格开始,数据依次为:80、98、65、79、65 B1中编辑公式:=RANK(A1,$A$1:$A$5,0)
回车确认,下拉至B5单元格
效果:
从B1单元格起依次返回值为2、1、4、3、4
Rand/Randbetween
常用随机抽样,前者返回0~1之间的随机值,后者可以指定范围。
MySQL中有同名函数。
Averagea
求平均值,也有Averageaif,Averageaifs
MySQL中有同名函数,python有近似函数mean。
Quartile
计算四分位数,比如1~100的数字中,25分位就是按从小到大排列,在25%位置的数字,即25。参数0代表最小值,参数4代表最大值,1~3对应25、50(中位数)、75分位
Stdev
求标准差,统计型函数
Substotal
汇总型函数,将平均值、计数、最大最小、相乘、标准差、求和、方差等参数化。
Int/Round
取整函数,int向下取整,round按小数位取数。
round(3.1415,2) =3.14 ;
round(3.1415,1)=3.1
时间序列类
专门用于处理时间格式以及转换。
Year
返回日期中的年
MySQL中有同名函数。
Month
返回日期中的月
MySQL中有同名函数。
Weekday
返回指定时间为一周中的第几天,参数为1代表从星期日开始算作第一天,参数为2代表从星期一开始算作第一天(中西方差异)。我们中国用2为参数即可。
MySQL中有同名函数。
Weeknum
返回一年中的第几个星期,后面的参数类同weekday,意思是从周日算还是周一。
MySQL中有近似函数 week。
Day
返回日期中的日(第几号)
MySQL中有同名函数。
Date
时间转换函数,等于将year(),month(),day()合并
MySQL中有近似函数 date_format。
Now
返回当前时间戳,动态函数
MySQL中有同名函数。
Today
返回今天的日期,动态函数
MySQL中有同名函数。
Datedif
日期计算函数,计算两日期的差。参数决定返回的是年还是月等。
MySQL中有近似函数 DateDiff。
语法: =DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。(起始日期必须在1900年之后)
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型。 Unit取值: "Y" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" 起始日期与结束日期的同月间隔天数。 忽略日期中的月份和年份。
"YD" 起始日期与结束日期的同年间隔天数。忽略日期中的年份。
"YM" 起始日期与结束日期的间隔月数。忽略日期中年份 用法: =DATEDIF(A1,TODAY(),"Y")计算年数差
=DATEDIF(A1,TODAY(),"M")计算月数差
=DATEDIF(A1,TODAY(),"D")计算天数差
数据分析-excel基础篇的更多相关文章
- C# 操作Excel基础篇(读取Excel、写入Excel)
注意事项:Excel的数据表中最多只能储存65535行数据,超出后,需要将数据分割开来进行储存.同时对于Excel中的乱码象限,是由于编码的错误方式导致引起的! 一.读取Excel数据表,获得Data ...
- 使用POI导出excel基础篇
最近搞了下POI导出Excel,听说很多次,却是第一次搞. 在pom.xml中引入依赖 <dependency> <groupId>org.apache.poi</gro ...
- 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...
- g4e基础篇#1 什么是版本控制系统
g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...
- Python 经典面试题汇总之基础篇
基础篇 1:为什么学习Python 公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python.Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方 ...
- g4e基础篇#1 为什么要使用版本控制系统
g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...
- WDA-文档-基础篇/进阶篇/讨论篇
本文介绍SAP官方Dynpro开发文档NET310,以及资深开发顾问编写的完整教程. 链接:http://pan.baidu.com/s/1eR9axpg 密码:kf5m NET310 ABAP ...
- Repractise基础篇:Web应用开发七日谈
Repractise基础篇:Web应用开发七日谈 本来想的仅仅是画一个例如以下的七日图来说说Web开发的.随后又想了想这似乎是一个非常棒的Web开发相关的知识介绍.应用开发是一个非常有意思的循环,多数 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- faster rcnn结构
rpn-data层输入的是data即整张图片,然后是根据映射生成roi框 rpn-loss-bbox输入的才是整个网络预测的roi框 bbox_transform在rpn-data层使用,把生成的ac ...
- 3D超炫酷旋转
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- CF919F A Game With Numbers
题目:(luogu翻译错的很多) Alice和Bob玩游戏,每人有8张牌,牌的值为0~4.每一轮当前玩家选择自己的牌A和对手的牌B,然后将A的值变为( A + B )%5,其中A和B都不是0. 当一个 ...
- 【thinking in java】反射
前言 反射是框架设计的灵魂,使用的前提条件:必须先得到字节码的Class,Class类用于表示字节码,字节码即是.class文件 概述 JAVA反射机制:在程序运行的过程中,对于任意一个类,都可以知道 ...
- 自媒体人Chrome浏览器必备插件精选神器!
自从互联网时代起,浏览器使用从最早的IE,到opera,到猎豹浏览器,到360双核浏览器,到火狐,到safari,到目前最喜欢用的chrome.一路下来,chrome的稳定性与扩展性征服了我,成了我必 ...
- unity 菜单栏添加新菜单
using UnityEngine; using System.Collections; using UnityEditor; public class jqmTools : CreateSphere ...
- 【Codeforces 1041D】Glider
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 二分. 枚举每一个上升区的起始位置作为起点(这样做肯定是最优的),然后如果没有掉在地上的话就尽量往右二分(只有上升区之间的间隙会让他往下掉) ...
- Linux读取网卡流量脚本
#!/bin/bash #eval `date "+day=%d; month=%m; year=%Y; hour=%H; minute=%M second=%S"` #INSTF ...
- [luoguP1439] 排列LCS问题(DP + 树状数组)
传送门 无重复元素的LCS问题 n2 做法不说了. nlogn 做法 —— 因为LCS问题求的是公共子序列,顺序不影响答案,影响答案的只是两个串的元素是否相同,所以可以交换元素位置. 首先简化一下问题 ...
- hdu 4770 状压+枚举
/* 长记性了,以后对大数组初始化要注意了!140ms 原来是对vis数组进行每次初始化,每次初始化要200*200的复杂度 一直超时,发现没必要这样,直接标记点就行了,只需要一个15的数组用来标记, ...