EXCEL-常用函数总结
0、判断一个文本字符串中是否包含数字!/判断一个文本字符串是否是纯汉字!
公式=IF(LENB(A1)=2*LEN(A1),”都是汉字“,“含有非汉字字符”)
解释函数:
LEN(A1)#返回文本字符串中的字符个数; ##双字字符*1*双字节字符个数+单字节字符*1*单字节字符个<=>计算字符个数;
LENB(A1)#返回文本字符串中的字符个数。与双字节字符集(DBCS)一起使用。##双字节字符*2*双字节字符个数+单字节字符*1*单字节字符个数<=>计算字节个数;
字符:分为双字节字符和单字节字符;字母和数字都是以1个字节为单位,即单字节字符;一个汉字 = 2个字节,即双字节字符;
1、统一小括号格式(中文小括号,英文小括号)
公式=ASC("(") #"("
解释函数:
ASC(A1)#对于双字节字符集(DBCS)语言,将全角英文字符(即双字节)更改为半角英文字符(即单字节); #因中文输入格式下,无全角半角差异,所以,ASC用于英输入格式下的全角半角处理。 亦可,参照0项表格。
2、数据->分列 (数据格式统一的精准分列)<=> 手动快捷键ctrl+E+等待 (“模糊模仿“”分列)<=> 用函数实现(精准分列)
用函数实现数据分列:
在B2处编辑公式=TRIM(MID(SUBSTITUTE($A2,"(",REPT(" ",100)),COLUMN(A2)*100-99,100))
然后将B2横拉填充至C2,则C2处公式为:=TRIM(MID(SUBSTITUTE($A2,"(",REPT(" ",100)),COLUMN(B2)*100-99,100))
最后将B2和C2竖拉填充剩余行即可实现将第一列数据按左边小括号分列。
解释B2处函数:
REPT(" ",100)#将1个空格重复100遍;【1】
SUBSTITUTE($A2,"(",REPT(" ",100))#将文本A2中的左半边小括号替换为100个空格;【2】
MID(SUBSTITUTE($A2,"(",REPT(" ",100)),COLUMN(A2)*100-99,100)#处理【2】步骤出来的文本,从COLUMN(A2)*100-99(即等于1)开始(包含1位置),截取100个字符; 【3】
TRIM(MID(SUBSTITUTE($A2,"(",REPT(" ",100)),COLUMN(A2)*100-99,100))#TRIM删除文本字符串中的空格
3、批量下拉填充
=>
全选->Ctrl+G定位空值->随意找一个空白单元格输入=还有此单元格想要填充的内容->按Ctrl+Enter,等待几秒,即可,批量下拉填充;
4、常用快捷键:
(0)F4:【1】单元格上的处理,重复上次操作;【2】A1B200 按F4可以一次切换成,$A1$B200 $A$1$B$200 A$1B$200 ;
(1)Ctrl+Shift+下箭头,快速选中连续有内容的整列,遇到空的单元格就停止;
(2)Ctrl+Shift+L,快速添加筛选
5、条件判断
IFS(条件1,真1,假1-条件2,真2,假2-条件n,真n,假n-条件n+1,...,TRUE,执行) #可以嵌套164个(大概!具体忘了)
IF(条件1,真,假)
6、【单条件搜索】有两个表格(姓名列,年龄列,收入列等),从表1总表中,把表2中人员的年龄和收入匹配出来;
方法一:
公式=VLOOKUP($S2,$O$2:$Q$5,2,0) #其中最后0<=>FALSE(准确查找),1<=>TRUE(模糊查找);
解释函数:
vloolup纵向查找匹配;
$S2为条件列;
$O$2:$Q$5为以条件列为首列的查找表格范围;
2为要找的结果列值;(当然,此处也可以为1);
PS:如果想多条件查找,=VLOOKUP(A1&A2&...&An,匹配目标范围,目标列号,0),即可实现vlookup多条件查找。
方法二:
AC2公式=INDEX($X$2:$Z$5,MATCH($AB2,$Y$2:$Y$5,FALSE),1)
AD2公式=INDEX($X$2:$Z$5,MATCH($AB2,$Y$2:$Y$5,FALSE),3)
解释函数:
index(目标匹配表,行号,列号)=输出值
match(给定值,给定值属于目标匹配表中的列值区域强调必须是单列or单行区域,FALSE)=输出行号
7、【多条件搜索】 -vlookup & index-match
U2处公式=VLOOKUP($S2&$T2,IF({1,0},$O$2:$O$5&$P$2:$P$5,$Q$2:$Q$5),2,0),此公式为数组函数,输完公式后按下ctrl+shift+enter键计算结果。
解释函数:
$S2&$T2,是查找条件;
IF({1,0},$O$2:$O$5&$P$2:$P$5,$Q$2:$Q$5)#{1,0}数组,1-真,输出$O$2:$O$5&$P$2:$P$5,跟VLOOKUP查找条件匹配(VLOOKUP-实现第一步功能-定位条件),2-假,输出$Q$2:$Q$5,跟VLOOKUP,的2相匹配(VLOOKUP-实现第二步功能-输出)
AF2处公式=INDEX($Q$2:$Q$5,MATCH(AD2&AE2,$O$2:$O$5&$P$2:$P$5,0)),输完公式后按下ctrl+shift+enter键计算结果。
解释函数:
$Q$2:$Q$5,是INDEX的查找区域;
MATCH(AD2&AE2,$O$2:$O$5&$P$2:$P$5,0),是多条件(查找值)所在的行号;
AD2&AE2,是MATCH的多条件(即查找值);
$O$2:$O$5&$P$2:$P$5,是MATCH的多条件在匹配表中的范围列(即查找区域);
PS:致敬:https://baijiahao.baidu.com/s?id=1624152147643628919&wfr=spider&for=pc
8、姓名列中同一个人求和金额列,得出总金额。
方法一:
P2处公式=SUMPRODUCT(($M$2:$M$20=$M2)*($N$2:$N$20))
解释函数:
引用:https://zhinan.sogou.com/guide/detail/?id=1610011625
PS:这个只是单条件求和,可以探索一下能否多条件求和;
方法二:
O2处公式=SUMIFS(N:N,M:M,M2)
解释函数:
PS:可以多条件求和;
9、电话号码隐藏某几个数为*,起到保护信息作用;
方法一:
=SUBSTITUTE(AG2,MID(AG2,4,5),"*****")
解释函数:
MID(目标字符串,裁剪起始位置(包含),截取个数)
SUNSTITUTE(目标字符串,要替换的原字符串,要替换为的新字符串)
方法二:
=REPLACE(AG2,4,5,"*****")
解释函数:
REPLACE(目标字符串,替换起始位置(包含),要更新的新字符串)
10、选择性粘贴(粘贴公式为数值)自动化,不想手动;
参考:https://jingyan.baidu.com/article/20b68a88a8bf55796cec62a3.html
11、vlookup内部能不能用函数?(即内部嵌套函数)
总结:只能说有,但不是所有,目前还没有找到规律(唯一的规律是内嵌函数结果值得是符合vlookup参数格式的),只能做经验积累了:
不可以的:
OR、AND、
可以的:
indirect、IF、index、column、row
eg1:内嵌套indirect函数辅助vlookup能获得目标区域
#indirect()#返回由文本字符串所指定的引用
表中公式可以实现汇总多个工作表数据的功能(功能跟12项是属于相似类)
eg2:内嵌套vlookup函数辅助主vlookup能获得查找值或者用index()、IF()获得查找值,都是可以的
参考:http://blog.sina.com.cn/s/blog_4c87bf980102y759.html
eg3:内嵌套column函数辅助vlookup获得序列数
=vlookup(A1,F:G,COLUMN(),0) #COLUMN()返回此公式所在位置的列号
12、同个工作簿中,多个工作表中有格式一致的表格,做汇总透视合并信息
在工作簿中新建一个工作表-汇总表-》按Alt+D+P调出数据透视表和数据透视图向导-》选择“多重合并计算数据区域”,然后依次添加每个工作表想要的汇总的区域-》生成透视表,此时是计数,可以调节透视表数据的汇总方式(比如求和、平均值等)
参考:https://jingyan.baidu.com/article/8ebacdf009711549f65cd5e5.html
13、在整个工作簿中查找/替换
调范围为:工作簿,默认是工作表;
14、转换单元格格式的函数或“方法”汇总
=value(单元格) #转换为数值
=A1&"" #转换A1为文本