Excel的公式技巧
导读:1.公式技巧 1.1 在单元格中显示工作表和工作簿的名称 在单元格中显示工作表的名称,有两种方法: (1)建立如下自定义函数: Function bookname() bookname = ActiveSheet.Name End Function 使用时在单元格中输入公式:=bookname(),即可返回当前工作簿的标签名字。 (2)自定义名称的方法。定义如下名称: 点击[插入][名称][定义],名称的定义为T_B,引用位置输入:=replace(get.document(1),1, find(],g
1.公式技巧
1.1 在单元格中显示工作表和工作簿的名称
在单元格中显示工作表的名称,有两种方法:
(1)建立如下自定义函数:
Function bookname()
bookname = ActiveSheet.Name
End Function
使用时在单元格中输入公式:=bookname(),即可返回当前工作簿的标签名字。
(2)自定义名称的方法。定义如下名称:
点击[插入]à[名称]à[定义],名称的定义为“T_B”,引用位置输入:“=replace(get.document(1),1, find("]",get.document(1)),)&t(now())”,在单元格输入“=T_B”就可以显示当前表名。值得注意的是,返回的工作表名称随着工作表名称的变化而变化。在此引用中,GET.DOCUMENT()是宏表函数,当数据变动时无法自动计算,now()是易失性函数,任何变动都会强制计算,宏表函数所以加上now()就可以自动重算了,T()用来将now()产生的数值转化为空文本。
在单元格中显示工作簿的名称,使用系统函数Cell():
在单元格中输入公式:=Cell("filename") ,就会返回该工作簿和工作表的名字(包括绝对路径名),然后根据自己的需要运用一些文本处理函数进行处理即可。
注意:该函数必须在工作簿已经保存的情况下才生效。
1.2 简单判断单元格最后一位是数字还是字母
在有些情况下,需要判断单元格的最后一位是数字还是字母,可以用下面三个公式之一:
(2)=IF(ISNUMBER(--RIGHT(A1,1)),"数字","字母"),直接返回数字或字母。其中“--”的含义是将文本型数字转化为数值以便参与运算。
(3)=IF(ISERR(RIGHT(A1)*1),"字母","数字"),直接返回数字或字母。
1.3 如何求出一个人到某指定日期的周岁?
=DATEDIF(起始日期,结束日期,"Y")
1.4 判断单元格中存在特定字符
假如判断A栏里是否存在"$"字符,有则等于1,没有则等于0,公式为:
=IF(COUNTIF(A:A,"*$*")>0,1,0)。
1.5 计算某单元格所在的列数
通常情况下,A列为第1列,AA列为27列。可以在A1单元格中输入列标,通过下列公式计算出任何列标的列数:
=COLUMN(INDIRECT(A1&"1"))。例如:“FG”列为第163列。
1.6 DATEDIF函数的作用
DATEDIF函数计算两个日期之间的天数、月数或年数。提供此函数是为了与 Lotus 1-2-3 兼容。
语法:DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型。
Unit返回"Y"时间段中的整年数。"M"时间段中的整月数。"D"时间段中的天数。"MD"start_date 与 end_date 日期中天数的差。忽略日期中的月和年。"YM"start_date 与 end_date 日期中月数的差。忽略日期中的日和年。"YD"start_date 与 end_date 日期中天数的差。忽略日期中的年。
说明:Microsoft Excel 按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用 1900 日期系统,则 Excel 会将 1900 年 1 月 1 日保存为系列数 1。而如果工作簿使用 1904 日期系统,则 Excel 会将 1904 年 1 月 1 日保存为系列数 0,(而将 1904 年 1 月 2 日保存为系列数 1)。例如,在 1900 日期系统中 Excel 将 1998 年 1 月 1 日保存为系列数 35796,因为该日期距离 1900 年 1 月 1 日为 35795 天。请查阅 Microsoft Excel 如何存储日期和时间。
Excel for Windows 和 Excel for Macintosh 使用不同的默认日期系统。有关详细信息,请参阅 NOW。示例
DATEDIF("2001/1/1","2003/1/1","Y") 等于 2,即时间段中有两个整年。
DATEDIF("2001/6/1","2002/8/15","D") 等于 440,即在 2001 年 6 月 1 日和 2002 年 8 月 15 日之间有 440 天。
DATEDIF("2001/6/1","2002/8/15","YD") 等于 75,即在 6 月 1 日与 8 月 15 日之间有 75 天,忽略日期中的年。
DATEDIF("2001/6/1","2002/8/15","MD") 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。
1.7 在一个单元格中指定字符出现的次数
例如在A1单元格中有“abcabca”字符串,求“a”在单元格A1内出现次数,用下列公式:
=LEN(A1)-LEN(SUBSTITUTE(A1, "a", ""))。
1.8 日期形式的转换
我们在有些情况下写日期会用“20060404”表示,如何转换成“2006-04-04”的标准日期格式,用下面的两个公式之一(假定在A1单元格中有原始日期):
=TEXT(A1,"0000-00-00")
=TEXT(A1,"????-??-??")。
也可以使用以下公式,转换成“2006-4-4”的格式。
=LEFT(A1,4)&SUBSTITUTE(RIGHT(A1,4),0,"-")。
反之,如何把“2006年4月4日”转换成“20060404”?可以利用下面的公式之一(假定在A1单元格中有原始日期):
=YEAR(A1)&TEXT(MONTH(A1),"00")&TEXT(DAY(A1),"00" )
=YEAR(A1)&IF(MONTH(A1)<10,"0"&MONTH(A1),MONTH(A1))&IF(DAY(DAY(A1)<10),"0"&DAY(A1),DAY(A1))
=TEXT(A1,"yyyymmdd")。
也可以直接自定义格式:yyyymmdd。
1.9 用“定义名称”的方法突破IF函数的嵌套限制
Excel中的IF()函数的一个众所周知的限制是嵌套不能超过7层。例如下面的公式是错误的,因为嵌套层数超过了限制。
- 上一篇: excel表格的35招必学秘技
- 下一篇: 利用EXCEL快速计算个人所得税

- 公司党费专户账务处理 2025-12-18
- 劳务分包合同可以含辅材 2025-12-18
- 公司法人的话费能报销吗 2025-12-18
- 违约后履约保证金的账务处理 2026-02-15
- 企业收到待报解预算收入是什么意思 2025-12-18
- 以前年度管理费用金额有误应如何调账 2025-12-19
- 购进货物用于赠送视同销售吗? 2026-01-01
- 负数发票能抵扣吗 2025-12-28
- 固定资产二级科目有哪些 2025-12-19
- 年终奖该如何并入综合所得申报 2026-03-21
- 我公司为装修公司 材料员在财务拿现金买材料 怎么做帐 2026-04-02
- 高温费发现金,没有入工资,没有发票怎么入账啊、 2025-12-21
- 老师好,小规模公司能一次性开票1000万吗?如果开了有什么税务风险呢 2026-03-21
- 老师 请问 住宿费分2个日期开的发票 可以做在同一张凭证吗? 2026-03-21
- 私立幼儿园装修费税务上要求不低于几年摊销 2026-03-24
- 请问下网上工商注册-设立登记提交签名时不记得数字证书口令怎么处理? 2026-03-26
- 老师,海带片的税率是多少 2025-12-20
- 老师,发票上传成功之后3天电脑系统还看不到信息,为什么呢 2026-02-21
- 请问老师,公司实收资本为0,可以用未分配利润转为实收资本吗 2026-02-21
- 月末结转汇兑损益,是按哪个时间点汇率来? 2025-12-22