最近工作中用到EXCEL统计处理一些数据,正好之前有自学了一段时间的EXCEL,这次正好用上。为了加深印象,以后方便翻阅,就记录下来。这篇会不断补充。

IF 多条件判断返回值

  IF(logical_test, [value_if_true], [value_if_false])

  示例: 小于500,且未到期的,返回“补款”

  IF(AND(A2<500,B2="未到期"),"补款","")

  职称为工程师或高工的,返回“满足”

  IF(OR(C3="工程师", C3="高工"),"满足","")

  说明:两个条件同时成立用AND,任一个成立用OR函数。

IFS 多场景判断返回值

IFS(logical_test1,value_if_true1, logical_test2, value_if_true2, ...)

示例:

在一列中,根据不同的判断条件,给出符合条件的值

IFERROR 把公式产生的错误值显示为自定义值

IFERROR(value, value_if_error)  第一个参数为需要判断的计算式,第二个参数为当第一个参数出错时要返回的值。

  示例:成绩低于60,不及格  

IFERROR(A2>=60,"不及格")

COUNTIF 单条件计数

  COUNTIF(range, criteria)

  示例:统计E列工资大于6000的人员数

  COUNTIF(E:E, ">6000")

  COUNTIF(E:E, ">"&M9) 假设M9单元格内容为6000

COUNTIFS 多条件计数

  COUNTIFS(criteria_range1, criteria1, criteria_range2, criteria2, ...)

  示例:统计属于销售部门,工资大于6000的员工人数

  COUNTIFS(D:D, "销售", E:E, ">6000")

SUMIF 按条件在查找区域进行查找,并返回查找区域对应的数据区域中数值的和

  SUMIF(range, criteria, [sum_range])

  示例:当不指定SUM_RANGE时,将直接对RANGE区域求和

  SUMIF(C:C, ">1000"), 对大于1000的单元格求和

  SUMIF(B:B, "果汁", C:C), 对B列为果汁对应的C列销量求和

SUMIFS 多条件组合的数据求和

  SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2, ...)

  示例: 统计生产部门,男性工资的总和

  SUMIFS(K:K, D:D, "生产", C:C, "男")  

AVERAGEIF, AVERAGEIFS和SUMIF, SUMIFS类似

VLOOKUP, HLOOKUP 搜索用户查找范围中首列(或首行)中满足条件的数据,并根据指定的列号(行号)返回对应的值。VLOOKUP对列数据按行进行查找,HLOOKUP对行数据按列查找

  VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

  HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

  [range_lookup]默认值为1或TRUE,使用模糊匹配方式进行查找。如果设置成0或FALSE,使用精确查找,同时支持无序查找。

  示例:查找员工号为2267的员工姓名

  VLOOKUP("2267", A1:D4, 2)

LEN 返回文本串的字符个数

  LEN(text)

SUBSTITUTE 将目标文本中指定的字符串替换为新的字符串

  SUBSTITUTE(text, old_text, new_text, instance_num)

  示例:

  将第二个狐替换成虎

  SUBSTITUTE("狐假狐威", "狐", "虎", 2)

  计算单元格中MANUAL字符的个数

(LEN(J13)-LEN(SUBSTITUTE(J13,"MANUAL",)))/LEN("MANUAL")

  

INDEX 根据给定的一个范围(区域引用或数组)中指定的行号和列号来返回一个值,如果源数据是区域,则返回单元格引用;如果源范围是数组,则返回数组中的某个值。

  INDEX(reference, row_num, [column_num], [area_num])

  INDEX(array, row_num, [column_num])

  示例:从左侧的数据表隔行提取,生成新的工作表

  E4:INDEX($C$3:$C$8, ROW(A2)*2-1)

  F4:INDEX($C$3:$C$8,ROW(A2)*2)

SMALL 取指定的第N小的值

  SMALL(array, K)

  示例:

  取第一小的值

  SMALL({10,15,20},1.5)等同于SMALLSMALL({10,15,20},1),结果为10

LARGE 取指定的第N大的值,与SMALL相反

  

VBA

示例:

在一列中,填入其他一列需求名中的ID号,ID号会是重复的,但在另外一个OtherSheet中已经有B列对应所有的ID号。先模糊匹配上ID号,再返回ID号为单元格值。

E17=VaildReq(OtherSheet!B:B,B17)

VBA代码:

Function VaildReq(rng1 As Range, s As String) As String
Dim Arr1
Dim r As Long
r = rng1.End(xlDown).Row - rng1.Row +
Arr1 = rng1.Resize(r, )
Dim i As Long
For i = To UBound(Arr1)
If InStr(s, Arr1(i, )) Then
If VaildReq = "" Then VaildReq = Arr1(i, ) Else VaildReq = s
End If
Next
End Function

当EXCEL添加了VBA代码时,保存EXCEL得另存为 EXCEL启用宏的工作簿(*.xlsm)格式。

Excel处理数据用到的一些公式和VBA脚本的更多相关文章

  1. Excel表格数据导入到SQLServer数据库

    转载:http://blog.csdn.net/lishuangzhe7047/article/details/8797416 步骤: 1,选择要插入的数据库--右键--任务--导入数据 2,点击下一 ...

  2. JAVA实现Excel导出数据(以写好的Excel模版导出)

    工作中经常会有将后台数据以Excel导出的功能. 简单的方法有将response的contentType设置为application/vnd.ms-excel: 或在JSP页面直接设置成: <% ...

  3. NPOI操作EXCEL(三)——反射机制进行excel表格数据的解析

    我们先来回忆回忆上篇文章讲到的通过xml配置文件实现excel批量模板解析的整体思路: 1.对每个excel模板制定xml配置规则集,实现xml配置文件的解析服务 2.为每个excel模板制定DTO, ...

  4. .net实现与excel的数据交互、导入导出

    应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...

  5. jxl读取Excel表格数据

    调用jxl包实现Excel表格数据的读取,代码如下: import java.io.File; import java.io.IOException; import java.util.ArrayLi ...

  6. Excel的数据导入到PB的DW中

    Excel的数据导入到PB的DW中//==================================================================== // Event:cb_ ...

  7. Visual Basic 2012 借助DataGridView控件将Excel 2010数据导入到SQL server 2012

    (注:注释的颜色原本为绿色,在这里变为黑色,有点不便,但不会造成阅读影响.放入Visual Basic2012代码编辑器后会还原成绿色.) 摘  要:DataGridView控件作为数据传输的中介,只 ...

  8. 向MySql数据库导入excel表数据

    最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦.所以想到是不是可以从用一些现有数据格式的文件导入数据.在网上查了一下,看到有关于将excel的数据导入到mysql的方法.所以将题库数据整理成 ...

  9. 上传读取Excel文件数据

    /// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...

随机推荐

  1. 实现带有getMin的栈

    题目 实现一个特殊的栈,在实现栈的基础上,再实现返回栈中最小的元素的操作. 要求 pop.push.getMin的时间复杂度是O(1) 可以使用现成的栈类型 思路 如下图所示,在栈结构中,每次pop的 ...

  2. easyui dialog遮罩层

    当dialog在一个iframe里时,此dialog的遮罩层也会只覆盖这个iframe,要想覆盖整个页面,就把dialog写到最外层的父页面中去,此时dialog的遮罩层会自动覆盖整个页面,若需要从子 ...

  3. 第二百三十一天 how can I 坚持

    哎,蛋疼的一天,一点破问题搞了一下午,还没搞利索. 他们要组织出去玩,我没有参加啊,随便找了个借口. 博客园的字体怎么变小了呢,看着好难受啊,昨天传照片传的? 睡觉.外边下着雨呢,喜欢下雨的夏天还有下 ...

  4. 第二百零八天 how can I 坚持

    今天徐斌生日,生日快乐.买了两个小蛋糕,哈哈 还买了两条熊猫鱼.不知道鱼会不会冻死啊,买了加热器又不想用,看他们造化吧. LOL不错的游戏的. 睡觉,好冷.

  5. Hadoop学习笔记(2)

    Hadoop学习笔记(2) ——解读Hello World 上一章中,我们把hadoop下载.安装.运行起来,最后还执行了一个Hello world程序,看到了结果.现在我们就来解读一下这个Hello ...

  6. vs2012 密匙

    旗舰版 YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

  7. java进程状态

    A thread state. A thread can be in one of the following states: NEWA thread that has not yet started ...

  8. CSS元素水平居中和垂直居中的方法大全

    水平居方法: 1.最熟悉的是给元素定义一个宽度,然后使用margin: body{ width:960px; margin:0 auto;}这个是当我们的定义元素的宽度时显现的,如果我们不能定义宽度时 ...

  9. Gym 101064 D Black Hills golden jewels (二分)

    题目链接:http://codeforces.com/gym/101064/problem/D 问你两个数组合相加的第k大数是多少. 先sort数组,二分答案,然后判断其正确性(判断过程是枚举每个数然 ...

  10. thinkphp 定位查询 Model:last您所请求的方法不存在!

    thinkphp 定位查询 Model:last您所请求的方法不存在!   用thinkphp3.1做项目的时候为了获取记录表中最后一个id用到了last()方法,出现了这个错误:Model:last ...