Excel被Microsoft官方冷藏的函数了解下

Posted 旺丁旺财杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel被Microsoft官方冷藏的函数了解下相关的知识,希望对你有一定的参考价值。


【Excel】被Microsoft官方冷藏的函数了解下

精选

THEBEST

我们最懂你

【Excel】被Microsoft官方冷藏的函数了解下

一段时间没写阅读量持续扑街的Excel教程了,想行谢过最近一直有帮我分享装修版块文章的小伙伴们,无以为报,只能继续写下去。这次为大家分享的是三个被Excel冷藏起的函数,也就是说你找Help都找不到用法的函数【Excel】被Microsoft官方冷藏的函数了解下

 sdfasdfasdf
1.DATEDIF
时间间隔
函数

前段时间,亨利做WBS的时候问我为什么两个时间比较为什么出错(直接用>或者<),之前想教他用DATEDIF这个函数算时间隔离再与 > 0比较的,但想想他又不是算工期、工龄之类的,还是教他 时间B-时间A<>0 做判断好了。

由于工作原因,偶尔我还是要算一下工期的,但老人家经常会忘了B-A+1或者B-A-1,那么DATEDIF就能帮上忙了【Excel】被Microsoft官方冷藏的函数了解下公式=datedif(开始日期,结束日期,"D"),就可以算出日期了。如果要算相隔月数,公式改成=datedif(开始日期,结束日期,"M")。年的话改成=dateif(开始日期,结束日期,“Y”)。

2.Evaluate
宏表函数

宏表函数Evaluate这个函数,对于Microsoft来说是冷藏函数,属于Excel 4.0时代(上世纪90年代)的东西,好久之前已经请出了直接使用的行列,有前朝余孽的感觉。但偏偏金山的WPS ET还能直接用,习惯用微软家的Excel收到一些用WPS直接用Evaluate的工程量计算表简直想打人。下边先引用下Excel使用经典但不好用的方法


【Excel】被Microsoft官方冷藏的函数了解下

A列已经输入公式了,Ctrl+F3呼出名称管理器▼

【Excel】被Microsoft官方冷藏的函数了解下

新建“计算”公式▼

【Excel】被Microsoft官方冷藏的函数了解下

在B列输入=计算,B列生成结果▼


【Excel】被Microsoft官方冷藏的函数了解下


好像很方便,但这个使用方法有点Bug:万一C列也要输入公式,D列也要生成C列的结果,那就又要新建多少“计算1”了,作为一个强迫症大神,这种生成垃圾定义名的做法我实在受不了,所以PO主我几年前就放弃了这种傻傻的做法,把Evaluate(变量)封装VBA自定义函数,让它能又重新回归直接使用的领域▼

ALT+F11呼出VBA界面,右键新建“模块”,输入函数▼

Function jsjg(in_num)

If Len([in_num].Value) > 254 Then

    jsjg = "对不起,请输入不超过255字符的公式"

Else

    If VarType(in_num) = 0 Then

        jsjg = 0

    Else

         If VarType(Evaluate([in_num].Value)) = vbError Then

           jsjg = "输入值有误,请检查或重新输入"

        Else

        jsjg = Evaluate([in_num].Value)

        End If

    End If

End If

End Function

,关掉VBA界面就可以在,在单元格上直接输入公式=jsjg(公式所在单元格)计算出结果了,还增加了公式字符长度限制在255个的限制,和单元格数据类型错误的的提示。这里还是提醒一下,使用这种函数无论是名字定义或者VBA自定义函数都需要把文件存在支持宏的格式,如*.XLSM,*.XLS,*.XLSB

3.Number
string
中文序列

这个函数就有点小众了,没记错的应该是中文版的Office特有的,如果用不了要把office工具改为中文才能用:

开始菜单→office 工具→语言设置→主要编辑语言,改为:中文()

NumberString的功能是阿拉伯数字转换成中文的函数,是不是有希望把金额转换成大写呢【Excel】被Microsoft官方冷藏的函数了解下先看看下面▼

【Excel】被Microsoft官方冷藏的函数了解下

小数点后面是不能识别的,而且没有金额的圆角分四舍五入,原本想改造成VBA的自定义函数的,结果WorksheetFunction也不支持引用这个函数,ExecuteExcel4Macro的方法也不能用在自定义Function里面,好吧,果然之前小写转大写的函数写得复杂是有道理的【Excel】被Microsoft官方冷藏的函数了解下


大家就用来转序号吧,=Numberstring(目标,1)

其实除了NumberSting还有个同宗兄弟DateString,不过比NumberString还要鸡肋,例如1996-06-06,它转出来的是这样的,实用价值低到拿不出手【Excel】被Microsoft官方冷藏的函数了解下

【Excel】被Microsoft官方冷藏的函数了解下


1

后记

看到最后第3个,估计有人想揍我。唉,其实我也是想你们提前避坑(心虚ing),看我的教程被坑总好过看别人写Numberstring存有幻想嘛(MD,我还白花了半个小时封装VBA自定义函数呢)!!总之,有我在,还是有干货的【Excel】被Microsoft官方冷藏的函数了解下

【Excel】被Microsoft官方冷藏的函数了解下  
点击下面链接 查看历史文章








Feel Free to Enjoy your Life!


▼▼▼更多历史文章请点击“阅读原文”

以上是关于Excel被Microsoft官方冷藏的函数了解下的主要内容,如果未能解决你的问题,请参考以下文章

巧用Microsoft office Excel 模板

Excel神奇的去重复值函数--UNIQUE函数

跨表提取数据,函数高手被名不经传的Microsoft Query 直接KO

大家一起学Microsoft Excel函数之ACCRINTM 函数

更改 Microsoft Office Excel 中 TEXT 函数的语言格式

如何在不安装 Microsoft Office 的情况下生成 Excel 文件?