EXCEL必备工具箱--添加函数功能,自定义函数让你如虎添翼
EXCEL必备工具箱,一款自带免费多标签的EXCEL工具箱,同时支持office和WPS,绝大部分操作可撤销。
下载地址:https://www.ahzll.top/HELP/PAGE/blog_5488e3a901000ayc.html
界面:
Excel本身自带的函数并不能完全满足广大用户的需求,本软件目前已提供了下述精心设计的自定义函数。
功能界面:
特别提醒:
本功能通过为当前工作簿添加自定义函数来实现。打开已添加函数的工作簿时必须点击“启用宏”,否则本软件添加的自定义函数将不起作用。
如果打开文档时没有提示“启用宏”,那么必须手动进行“启用宏”。
添加完自定义函数后,保存文档时,文档格式不能是.xlsx,必须保存为.xls或.xlsm或.xlsb格式,不然会系统会强行去除所以添加的自定义函数(微软为了防止宏病毒扩散,所以设计了.xslx格式不能保留任何宏代码的文档格式)
动画演示:
添加函数操作时提示“由于无法信任对VBA工程的访问,所以无法使用添加函数功能!” 解决方案如下:
(Excel下已实现自动信任,通常不会出现这个提示)
WPS下可能出现这种情况,一是免费版wps没有VBA模块,会提示自己下载安装VBA模块:
WPS下若已安装VBA模块,会提示是否通过模拟按键实现【信任VBA工程访问】:
点【是】之后,会自动完成设置:
若始终提示“由于无法信任对VBA工程的访问,所以无法使用添加函数功能!” ,手工解决方案如下:
1、在EXCEL中:
Excel选项-信任中心-信息中心设置-宏设置:1、启用所有宏,2、信任对VBA工程对象模型的访问。
2、在WPS中:
在确定自己的WPS有宏功能的情况下(免费版的WPS需自己另行安装VBA7.0), 碰到不能使用宏函数功能的提示,就去如下位置开启VBA信任权限:
开发工具-宏安全性-可靠发行商-(勾选)信任对于"Visual Basic 项目"的访问。
部分WPS用户反馈,在用新版WPS打开后,以后再用excel打开,可能会提示:添加的快捷键必须为字母。
本功能目前已提供的函数:
一、个税
格式:NianGeshui(本年累计应纳税所得额, 当前月份,月扣除基数,本年已交个税)
说明:2019年开始实行按月预交个税,次年3-6月汇算清缴。
本年累计应纳税所得额:从年初到本月累计的应纳税所得额,为每月工资奖金-社保及允许扣除的住房公积金、企业年金 -子女教育等6项专项附加扣除额;
当前月份:必须输入,因为每月允许的扣除基数5000元,是按月计算的,如:当前月为5月,则允许扣5*5000;如果是年度汇算清缴,当前月份请输入12。
月扣除基数:可以不输入,默认是5000元;
本年已交个税:可以不输入,可能原因:1、用于统计本年应该缴纳多少个税;2、由于工资较低,本年尚未缴纳个税。
特别提醒:在发放大额奖金后,以后月份的应纳税所得小于5000元时,在本年已交个税的情况下,计算结果为负数,但税法规定,不允许年度内退税,必须到次年3月-6月汇算清缴时才能退税。
使用:=NianGeshui(A1,2),若A1单元格的值为20000,将会得出个税300,(默认月扣除基数是5000,可省略)
参阅:直观的个人所得税计算功能
二、已知税后工资求含税工资
格式:
格式: NianHSGZ(本年累计税后工资,当前月份,月扣除基数)
界面:
当前月份:必须输入,因为每月允许的扣除基数5000元,是按月计算的,如:当前月为5月,则允许扣5*5000;
如果是年度汇算清缴,当前月份请输入12。
使用:=NianHSGZ(A1,2),若A1单元格的值为19700,将会得出本年含税工资20000,(默认月扣除基数是5000,可省略)
18.45版改进:界面增加提示:
★★切记:本年累计税后应纳税所得额 = 本年累计应纳税所得额 - 个税 =本年累计实发工资 - 子女教育等七项专项附加扣除等不影响实发的扣减项!!
(由于计算时要单独考虑每月5000元的扣除基数,所以这里个参数不考虑每月5000的扣除基础)
三、身份证校验函数
格式:sfz(身份证号,性别)
说明:用于校验身份证号码是否正确。
使用:比如在单元格输入=sfz(A1,A2)或者=sfz(A1),若A1单元格的值为字符串310101200707070426(在EXCEL中输入身份证号的方法),A2的值为1或"男",就会显示性别错误,等等;主要用于检测身份证号码是否正确(请不要用于虚构身份证号等不当用途!)。
从7.82版开始,可以不输入性别,格式:sfz(身份证号)
13.60版改进:增加了对行政区划的判断,并对最后一位如果是小写的x予以提示;
15.83版改进:会对出生月份等于0,或出生日期等于0这两种情况进行判断,并对代码进行优化
参阅:直观的身份证号码校验功能
四、中文大写金额
使用:比如在单元格输入=je(A1),若A1单元格的值是100.23,则返回:壹佰元零贰角叁分。
五、计算表达式的值
(请注意:本功能在5.56版开始提供)
格式=js(表达式)
使用:比如在单元格输入=js(A1),若A1单元格内是个表达式 5*6-3,则返回这个表达式的运算结果27。
参阅:EXCEL中容易被忽略的功能(15):自动计算表达式的值
13.80版改进:计算表达式的值(JS,SuperJS),增加对支持中文加减乘除符号和括号的支持,并自动去除表达式里的汉字,让计算根据方便。
15.40版改进:JS函数和SuperJS这两个计算表达式值的函数改进,支持去除【】[]{}这三组定界符内的字符进行计算,比如:
25【早餐5元/人,午餐25元/人】*16【用餐人数,一般是10-20人】*30【11月共30天】,按 25*16*30计算
25【早餐5元/人,午餐25元/人】*16[用餐人数,一般是10-20人]*30{11月共30天} ,也按 25*16*30计算
有中文的表达式举例:
例1:A1单元格的内容:200公斤+300公斤-150公斤
B1的公式:=JS(A1),结果为:350
例2(把逗号替换成加号构建表达式):
A1单元格的内容:萝卜200公斤,土豆300公斤,茄子150公斤
B1的公式:=JS(SUBSTITUTE(A1,",","+")),结果为:650
特别提示:搞工程的朋友可能经常用到表达式的长度超过255个字符,要用SuperJS函数,再长的表达式也不怕!
Excel2021不支持superJS(是因为不支持javascript的eval函数引起,原因不明),可用替代功能实现:计算表达式的值
15.97开始,SuperJS函数在32/64office中都可使用,且支持三角函数和幂运算符(^)
18.0版改进:增加了可选参数(忽略千位符),格式:=js(表达式,1) 或superJS(表达式,1)。比如A1单元格的内容为: 1,234+2,111 ,单元格里的公式=js(A1,1)的结果=3345
示例:
六、多功能个税计算函数 (朱兴海编写),详细介绍:https://www.ahzll.top/HELP/PAGE/blog_5488e3a90100gqzl.html
七、功能超强的查找函数,替代Vlookup,CZ(查找值,查找值所在区域,目标值所在列,确认返回第几个目标值),详细介绍:https://www.ahzll.top/HELP/PAGE/blog_5488e3a90100q1tt.html
八、pizhu函数
格式:=pizhu(单元格),比如:=pizhu(A1),将返回A1单元格的批注内容
九、翻译fy函数
由于有道等翻译网站均停止了免费的翻译API,所以此功能已失效。
格式:
=fy(要翻译的文本),比如:=fy(A1),A1中为中国,将返回:China。
如果:
温馨提示:如果你的excel是2013或更高版本,则使用2013版新增函数就可以实现翻译。
格式:
=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A1&"&doctype=xml&version"),"//translation")
十、JoinStr函数(用指定间隔符连接字符串)
(此函数是12.97版新增功能)
13.60版改进,特别感谢Anytime帮助,改进了JoinStr函数,支持内存数组;改进了CZ函数,第三参数适用范围更广。
15.40版改进:能够跨工作表使用。
15.41版改进:当数据里有0.3之类小数时,存在转换结果会不显示前面的0的问题,已经改进。
16.60版改进:当分割符多余一个字符时也能正确处理。
格式:
用途:用于把一个选定区域的单元格的内容用分隔符连接成一个字符串。替代PHONETIC功函数,可选择以任意字符为分隔符。
示例:
十一、IFss函数(因为新版office都已经自带IFS函数,如果同名就会造成冲突,所以从17.41版开始IFS自定义函数改名为IFss)
为解决IF函数只能一个条件的问题,office365里增加了IFS函数,为了让EXCEl2016及以前版本用上此函数,所以增加了此自定义函数。
格式:=IFss(条件1,结果1,条件2,结果2,所有条件都不符合的返回值)
提醒:可以是1个条件,或多个条件.
示例:=ifss(A2>89,"优秀",A2>79,"良好",A2>69,"一般",A2>59,"合格","不合格")
如果A2=90,符合条件1,则返回优秀;如果A2=80,符合条件2,则返回良好;如果A2=70,符合条件3,则返回一般;如果A2=60,则返回合格;如果A2=30,所有条件都不符合,则返回不合格。
如图:
十二、统一社会信用代码校验函数TYDM
格式: TYDM(社会信用代码)
说明:校验全国统一社会信用代码是否正确。
使用:比如在单元格输入=TYDM(A1),若A1单元格的值为字符串51150000MJ2200152P,就会显示18位代码,校验码应为9,等等;主要用于检测最后一位校验码是否正确。
示例:
全国统一社会信用代码信息查询系统:https://www.cods.org.cn
十三、根据信用代码返回公司名称函数
根据信用代码返回公司名称(信用代码)
使用:比如在单元格输入=根据信用代码返回公司名称(A1),若A1单元格的值为字符串91440300MA5DEWWY30,就会显示该公司名称:深圳市红栎树机器人技术有限公司
(温馨提示:本函数使用最为普及的天眼查查询结果,如果天眼查没有收录的信用代码,则无法查询)
如果查询时弹出下面的窗口:
说明在进入天眼查网站:https://www.tianyancha.com,要先登录并保存cookie才行。
严重鄙视全国统一社会信用代码信息查询系统,既然是政府网站,就应该开放查询端口,还不如人家天眼查这样的商业网站。
15.83版改进:根据信用代码返回公司名称函数,因为采用的天眼查官网数据,而对方最近修改了代码,导致原来函数无法查询到结果,已经同步修正。
十四、小写金额函数XXJE
比如:想把E1单元格的大写金额壹佰元伍角壹分转成小写的数值,输入公式:=XXJE(E1)
15.41版改进:将超过亿元大写金额转换成小写金额出现错误,已经改进。
十五、SumColor 颜色求和或计数函数
(这是Excel必备工具箱13.81版新增自定义函数)
格式: SumColor(统计区域, 条件,条件类型,是否计数)
用来按指定单元格的颜色对统计区域相同颜色的区域进行求和或统计单元格个数.(可以省略第三、第四参数)
统计区域,:是一个单元格区域,比如B2:B13;
条件:是一个单元格,比如:C6;
条件类型:只能是1、2、3、4,分别对应"背景色相同"、"字体颜色相同"、"背景色且字体颜色都相同"、"背景色或字体颜色相同",如省略则默认为1(即:背景色相同)
是否计数:是一个逻辑值,如省略或为0,则默认为false(求和),如果一个非0的数值则是True(计数)
特别提醒:本公式对条件格式产生的颜色无效!!!EXCEL必备工具箱有颜色求和、颜色计数功能,并且支持条件格式!
示例:
1、对B2:B13区域,对与C6背景色相同的单元格求和: =SumColor(B2:B13,C6) =1+8+7=16
2、对B2:B13区域,对与C6字体颜色相同的单元格求和: =SumColor(B2:B13,C6,2) = 8+6+7=21
3、对B2:B13区域,对与C6背景色和字体颜色均相同的单元格求和:=SumColor(B2:B13,C6,3) =8+7=15
4、对B2:B13区域,统计与C6背景色或字体颜色相同的单元格个数:=SumColor(B2:B13,C6,4,1) ,B2、B4、B5、B7共4个单元格,所以值为4
16.80版改进:“颜色求和/计数”标签进行对公式不支持条件格式产生的颜色进行了强调,并提供了工具箱支持条件格式颜色求和、颜色计数功能的链接。
17.41版改进:增加了提示:仅修改背景色,SumColor函数需按Ctrl+Alt+F9强制刷新,才能自动重算。(修改单元格值会自动重算)
十六、正则表达式
说明:为了方便在EXCEL中使用正则表达式查找或替换字符串。
格式:RegExStr(待处理字符串, 正则表达式,是否替换, 替换结果字符串)
待处理字符串:可以是一个单元格,比如A1,或字符串;
是否替换,:若为False(0),即只查找(默认),这时替换结果字符串不用填;若为True(或1),这是用替换结果字符串进行替换。
示例:(注A1的值为:中国移动10086)
=RegExStr(A1,"\d"),结果为:10086,说明是只查找;
=RegExStr(A1,"\d",1,"2"),结果为:中国移动22222,是把每个查找的结果都替换成2.
备注:工具箱的超级替换功能,不需要添加函数,直接支持正则表达式。
工具箱的正则表达式测试功能,可以测试你的正则表达式是否正常。
十七、准确计算两个日期相差几月几天(wdatedif函数)
用途:科学准确地计算两个日期相差月份和天数,适用于法院、检察院、司法行政机关计算剩余刑期,也适用于人事部门计算工作时长。
详细介绍,https://www.ahzll.top/HELP/PAGE/wdatedif.html
改进记录:
16.70版改进:
(1)去除了没有更新的Tax函数
(2)WPS下改进,用工具箱【添加函数】功能添加的自定义函数,在用新版WPS打开后,以后再用excel打开,可能会提示:添加的快捷键必须为字母。
经过反复测试,终于找到是WPS的bug,wps下如果执行MacroOptions,会在对应Macro代码里强行添加:Attribute RegExStr.VB_ProcData.VB_Invoke_Func = "19" 。
该问题已经改进,在WPS下不再用MacroOptions添加函数注释。
对于已经出现这个问题的文档要恢复正常,也非常简单:只需用工具箱【添加函数】功能再次添加一次工具箱的函数即可。
17.41版改进:IFS自定义函数更名IFss,因为新版office都已经自带IFS函数,如果同名就会造成冲突,所以改名)
17.53版改进:17.50版开始,部分网友反馈,窗口不能全部显示,会对这种情况进行自动校正。
18.0版改进:由于WPS对信任VBA工程的设置方法不一致,因此专门针对WPS对信任VBA工程的设置给与明确提示:
请进入WPS【开发工具】选项卡,点击【宏安全性】,点击【可靠供应商】选项卡,勾选【信任对于"“Visual Basic 项目”" 的访问(Y)】。
18.20版改进:部分网友当前选中的标签显示不够明显,已经改进。
18.27版改进:由于有道等翻译网站均停止了免费的翻译API,所以已删除【翻译】功能。
19.30版改进:在运行VBA代码时,会先检查是否已经安装了VBA模块(因为wps免费版并不会安装),还会检查是否已经设置【信任对VBA模块的访问】,并可以通过模拟按键实现【信任对VBA模块的访问】,避免小白用户不会设置的烦恼。