清洗处理类

主要针对文本、格式以及脏数据的清洗和转换。

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基础篇的更多相关文章

  1. C# 操作Excel基础篇(读取Excel、写入Excel)

    注意事项:Excel的数据表中最多只能储存65535行数据,超出后,需要将数据分割开来进行储存.同时对于Excel中的乱码象限,是由于编码的错误方式导致引起的! 一.读取Excel数据表,获得Data ...

  2. 使用POI导出excel基础篇

    最近搞了下POI导出Excel,听说很多次,却是第一次搞. 在pom.xml中引入依赖 <dependency> <groupId>org.apache.poi</gro ...

  3. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

    http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...

  4. g4e基础篇#1 什么是版本控制系统

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  5. Python 经典面试题汇总之基础篇

    基础篇 1:为什么学习Python 公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python.Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方 ...

  6. g4e基础篇#1 为什么要使用版本控制系统

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  7. WDA-文档-基础篇/进阶篇/讨论篇

    本文介绍SAP官方Dynpro开发文档NET310,以及资深开发顾问编写的完整教程.   链接:http://pan.baidu.com/s/1eR9axpg 密码:kf5m NET310 ABAP ...

  8. Repractise基础篇:Web应用开发七日谈

    Repractise基础篇:Web应用开发七日谈 本来想的仅仅是画一个例如以下的七日图来说说Web开发的.随后又想了想这似乎是一个非常棒的Web开发相关的知识介绍.应用开发是一个非常有意思的循环,多数 ...

  9. 小白学 Python(24):Excel 基础操作(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. faster rcnn结构

    rpn-data层输入的是data即整张图片,然后是根据映射生成roi框 rpn-loss-bbox输入的才是整个网络预测的roi框 bbox_transform在rpn-data层使用,把生成的ac ...

  2. 3D超炫酷旋转

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. CF919F A Game With Numbers

    题目:(luogu翻译错的很多) Alice和Bob玩游戏,每人有8张牌,牌的值为0~4.每一轮当前玩家选择自己的牌A和对手的牌B,然后将A的值变为( A + B )%5,其中A和B都不是0. 当一个 ...

  4. 【thinking in java】反射

    前言 反射是框架设计的灵魂,使用的前提条件:必须先得到字节码的Class,Class类用于表示字节码,字节码即是.class文件 概述 JAVA反射机制:在程序运行的过程中,对于任意一个类,都可以知道 ...

  5. 自媒体人Chrome浏览器必备插件精选神器!

    自从互联网时代起,浏览器使用从最早的IE,到opera,到猎豹浏览器,到360双核浏览器,到火狐,到safari,到目前最喜欢用的chrome.一路下来,chrome的稳定性与扩展性征服了我,成了我必 ...

  6. unity 菜单栏添加新菜单

    using UnityEngine; using System.Collections; using UnityEditor; public class jqmTools : CreateSphere ...

  7. 【Codeforces 1041D】Glider

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 二分. 枚举每一个上升区的起始位置作为起点(这样做肯定是最优的),然后如果没有掉在地上的话就尽量往右二分(只有上升区之间的间隙会让他往下掉) ...

  8. Linux读取网卡流量脚本

    #!/bin/bash #eval `date "+day=%d; month=%m; year=%Y; hour=%H; minute=%M second=%S"` #INSTF ...

  9. [luoguP1439] 排列LCS问题(DP + 树状数组)

    传送门 无重复元素的LCS问题 n2 做法不说了. nlogn 做法 —— 因为LCS问题求的是公共子序列,顺序不影响答案,影响答案的只是两个串的元素是否相同,所以可以交换元素位置. 首先简化一下问题 ...

  10. hdu 4770 状压+枚举

    /* 长记性了,以后对大数组初始化要注意了!140ms 原来是对vis数组进行每次初始化,每次初始化要200*200的复杂度 一直超时,发现没必要这样,直接标记点就行了,只需要一个15的数组用来标记, ...