part1:学习须知及业务问题需求介绍

办公软件技能提效 Excel篇
本次使用的是 Microsoft office Excel 2016,使用的Windows系统
建议您使用Excel2013及以上版本,或使用WPS2019个人版及以上版本
如您使用的是苹果飞Mac系统,且使用的是WPS工具,在常规内置函数使用上没有差别,但目前无法支持VBA的编辑及自定义函数功能的使用,相关差异在分享过程中会进行特殊说明。

需求技能提效包含五个环节
收到需求
问题解析
解决需求
提效操作
方法原理

业务问题需求点为:提取包名、素材名、定向名,以便按此字段进行汇总分析
问题本质及难点:
根据字段特点,使用函数截取字段的部分内容
需要截取的内容有特殊性(“包”后5个数字;短线后内容)
需要截取的内容位置不一致
目前没有单一函数可以快速实现需要的内容

解决办法:
1.使用MID+FIND等函数综合运用解决,占据计算内存大。
将在接下来第一步内容中会进行讲解:MID、LEFT/RIGHT/LEN/FIND/SUBTITUTE/等函数的特点及使用
2.使用VBA编写自定义BAO/JQ函数,制作.xlam加载项,金额实现单个函数快速实现需要的内容,将在第二部分内容介绍VBA编写自定义函数与Excel加载项的操作).

本节内容到此结束

part2:MID函数介绍及使用

MID函数,来源于英文单词middle【中间】的前三位字母,作用是在一串字符的指定位置开始提取若干个字符的函数,包含三个参数 一串字符 ,指定位置,若干个
182-7154-5675
‘421182198010203717’
包28789-卡片3-定向11

关于文本函数中很多都包含同类函数MIDB,其中的B表示的为byte【字节】,一个中文占两个字节,一个数字或字母占一个字节,知晓即可,日常很少用到。

通过编辑栏左侧的fx点击进入,输入MID可按照明细提示一步步操作。
本节内容到此结束

part3:LEFT/RIGHT函数介绍及使用

LEFT/RIGHT分别为左和右,顾名思义,在文本函数中作用为在一串字符从左,或从右提取若干个字符,包含两个参数 一串字符,若干个
182-7154-5675
包28789-卡片3-定向11
浙江省杭州市1963号
leftB/RIGHTB

通过编辑栏左侧的fx点击进入,输入LEFT或RIGHT点击转到后可按照明细提示一步步操作。
本节内容到此结束

part4:LEN函数介绍及使用

len函数来源于length【长度】,顾名思义,是获取一串字符的长度,只需要一个参数 一串字符
182-7154-5675
包28789-卡片3-定向11
浙江省杭州市
浙江省1号楼
len/lenb
通过编辑栏左侧的fx点击进入,输入LEN点击转到后可按照明细提示一步步操作。
本节内容到此结束

part5:FIND函数介绍及使用

FIND函数 中文意思为找到找出,顾名思义,是在一串字符中找指定的字符的位置
182-7154-5675
包28789-卡片3-定向11
浙江省1号楼
FIND/FINDB
通过编辑栏左侧的fx点击进入,输入FIND点击转到后可按照明细提示一步步操作。
本节内容到此结束

part6:MID+FIND函数综合使用

mid函数是从一串字符中从某个位置开始提取若干字符,find是找某个指定字符在一串字符的位置,刚好可弥补mid函数的某个位置。
包28789-卡片3-定向11
这是一个包28789-卡片3-定向11
该组合函数常用来解决提取具有没有固定位置的,但具有一般规律的字符串内容。
本节内容到此结束

part7:CHAR函数介绍及使用

char函数,char型数据是计算机编程语言中只可容纳单个字符的一种基本数据类型,放在Excel中,返回由数字指定的字符,数字为1-255.
1.获取特定符号;
该函数在进行获取指定单元格比较有效
如1,2,3,….;char(1)….char(65)=”A”
2.获取某单元格位置,可在获取单元格内容比较有效,结合indirect函数使用
indirtct(”A2”)
该函数常与行row()、列column()、indirect函数组合使用
本节内容到此结束

part8:SUBSTITUTE函数介绍及使用

SUBSTITUTE函数,中文意思为替代,替代品,就是在字符串中,用某一字符串替代另一字符串,包含字符串组、源字符串、现字符串三个参数,其实还包含一个可选的参数,替换第几个,不填写的话,表示替换所有的原字符串。
182-7154-5675 7154替换成**
包28789-卡片3-定向11 将-变成@
浙江省1号楼1弄301室 只替换第一个1

该函数在替换字符与replace函数仅英文上的差异,replace为替换,使用上略有差异,需根据参数情况进行使用,通过编辑栏左侧的fx点击进入,输入REPLACE点击转到后可按照明细提示一步步操作。
本节内容到此结束

part10:TEXT文本格式函数介绍及使用

text函数,中文就是文本,在Excel中是将单元格数值类型,用文本格式进行展示
如常见的日期格式:2020/10/30 表现陈2020年10月30日,与在格式类型中设置一致,无差别。
表现的万元单位0!.0,万,表单的单位0元,依旧可以参与计算.

通过编辑栏左侧的fx点击进入,输入text点击转到后可按照明细提示一步步操作,或直接通过自定义格式设置进行学习。
本节内容到此结束

part11:业务需求问题内置函数解答

=MID(A2,FIND(“包”,A2)+1,5)
=SUBSTITUTE(MID(A2,FIND(“包”,A2),6),”包”,””)
=MID(A2,FIND(“-“,A2)+1,FIND(“-“,A2,FIND(“-“,A2)+1)-FIND(“-“,A2)-1)
=MID(A2,-LOOKUP(,-FIND(“-“,LEFT(A2,(-LOOKUP(,-FIND(“-“,A2,ROW(A:A))))-1),ROW(A:A)))+1,(-LOOKUP(,-FIND(“-“,A2,ROW(A:A))))-(-LOOKUP(,-FIND(“-“,LEFT(A2,(-LOOKUP(,-FIND(“-“,A2,ROW(A:A))))-1),ROW(A:A))))-1)

本节内容到此结束

part12:自定义函数VBA程序介绍及编写

在讲解mid+find函数解决了图示包的问题,但包的问题没有具体解决,如出现包包12345-的情况,或出现礼包2-包45678,使用find查找“包”无法解决,使用自定义函数。
切换到【开发工具】选项卡,如您的Excel没有显示,在【开始】-【选项】-【自定义功能区】勾选上【开发工具】即可。
点击【Visual Basic】进入程序编辑界面,在左侧,鼠标右键,选择【插入】-【模块】,在出现的代码窗格中,写入自定义函数代码
自定义函数代码格式
以function 函数名(a as int)
han=a*100
end function

可关闭VB编辑窗口,将文件另存为.xlsm宏工作簿格式,因为VBA程序只能在宏工作簿格式文件下运行。
输入=han(3) 返回结果为100

function zsf(m as string)
zsf=MID(A2,vb.FIND(“包”,m)+1,5)
end function

自定义函数以function为标识符开始,以end function结束,函数需要自定义函数名称,括号内为参数,可以有0个或多个参数,函数最终是具有返回的结果,
关于更多的自定义函数内容需要了解基本的VBA知识,本次不做过多介绍
本节内容到此结束

PART13:问题需求的自定义函数VBA程序编写

点击【Visual Basic】进入程序编辑界面,在左侧,鼠标右键,选择【插入】-【模块】,在出现的代码窗格中,写入自定义函数代码
Function bao(str As String) ‘匹配获取“包”之后与”-“之间的内容
With CreateObject(“VBScript.RegExp”)
.Global = False ‘全局匹配
.Pattern = “包(\d+)-“
If .Test(str) Then ‘先进行测试,匹配的话就执行,不匹配的话就返回空值
lfys = .Execute(str)(0)
bao = Mid(lfys, 2, Len(lfys) - 2)
Else
bao = “”
End If
End With
End Function
Function jq(findStr As String, fullStr As String, srart_view As Integer, end_view As Integer) ‘截取某个字符中从第A个开始出现到第B个结束之间的内容
Dim ct As Integer, i As Integer, dt As Integer, j As Integer
If fullStr <> vbNullString Then
‘获取开始出现的位置
ct = 0
For i = 1 To srart_view
ct = VBA.InStr(ct + 1, fullStr, findStr, vbTextCompare)
Next
starts = ct
‘获取结束出现的位置
dt = 0
For j = 1 To end_view
dt = VBA.InStr(dt + 1, fullStr, findStr, vbTextCompare)
Next
ends = dt
jq = Mid(fullStr, ct + 1, dt - ct - 1)
Else
jq = “请重新输入,或联系管理员”
End If
End Function

本节内容到此结束

part14:自定义函数加载项介绍及使用

将写好的自定义函数文件,另存为.xlam的Excel加载项格式
打开一个新的Excel文件,点击【文件】-【选项】-【加载项】-【Excel加载项】转到-【浏览】找到文件地址,选择文件,并点击确定,即可完成自定义函数加载项文件的添加
在Excel单元格中即可使用自定义的函数,如=han(10);=bao(A2);=JQ(A5)
WPS2019个人版,本身不支持VBA编辑功能,需要使用外部VBA.EXE插件,
关闭wps,打开wpsvba.exe文件运行安装,安装完成后,打开wps可看到VB编辑栏可用,选择【加载项】然后点击【浏览】添加自定义函数的.xlam格式文件,后点击确定即可如office Excel同样操作

MAC系统因无法安装exe文件看,故无法使用wps的VB编辑功能,故目前无法使用个人版WPS2019来完成自定义函数的使用.

本节内容到此结束