第一篇:EXCEL函数的用法
如何将表示金额的阿拉伯数字转换成中文大写形式。
前面我们介绍了《Excel常用函数的功能和使用方法》,现在我们学以致用,介绍一系列用这些函数实现的数据统计实例解析。今天我们介绍如何将表示金额的阿拉伯数字转换成中文大写形式。
对于用EXCEL来处理日常统计报表的财务人员来说,一个最令人头痛的问题,就是如何将表示金额的阿拉伯数字转换成中文大写形式。
这里笔者给出将阿拉伯金额数字转换成中文大写形式的两种方法:内置函数法、自定义函数法,供大家参考。文章末尾提供.xls文件供大家下载参考。
本文所涉及到的Excel函数如下,点击可查阅具体的函数用法。
1、ABS(number)
2、CONCATENATE(Text1,Text……)
3、INT(number)
4、TEXT(value,format_text)
5、自定义函数
一、内置函数法
如图1所示,我们来将C12单元格中的数值转换为中文大写形式,并将结果保存在D12单元格中。
1、分别选中E13、F13、G13单元格,依次输入公式:=TEXT(INT(ABS(C12)),“[DBNum2]”)、=TEXT(INT(ABS(C12*10))-INT(ABS(C12))*10,“[DBNum2]”)、=TEXT(INT(ABS(C12*100))-INT(ABS(C12*10))*10,“[DBNum2]”)。
公式含义解析:分别确定统计结果的元、角、分的数值,并将其转换为中文大写格式。
2、选中E10单元格,输入公式:=E13&“元”&F13&“角”&G13&“分”,或者:=CONCATENATE(E13,“元”,F13,“角”,G13,“分”)。
公式含义解析:将E13至G13单元格中的文本组合为一个整体,并在相应位置加上单位“元、角、分”文字。
3、再次选中E12单元格,执行“格式→条件格式”命令,打开“条件格式”对话框(如图1)。按“条件1”下面的下拉按钮,选中“公式”选项,在后面的方框中输入“=$C$12<0”(如图2),再按“格式”按钮,在随后弹出的“单元格格式”对话框中(如图3),将“字体”颜色设置为红色,确定退出。
4、选中C12单元格,执行“格式→单元格”命令,打开“单元格格式”对话框(如图4),切换到“数字”标签下,选中“分类”下面的“货币”选项后,再选中右边“负数”下面的红色选项,确定退出。
注意:经过以上两步操作后,当C12中的数值小于零时,大、小写结果均以红色显示,与财务要求相一致。
5、选中13行,右击鼠标,在随后弹出的快捷菜单中,选“隐藏”选项,将13行隐藏起来,不影响正常打印效果。
至此,转换工作结束,效果参见图1所示。
二、自定义函数法
显然上面的转换方法比较麻烦。其实,我们可以事先自定义一个函数,然后再用自定义的函数来转换。
1、执行“工具→宏→Visual Basic编辑器”命令,进入“Visual Basic编辑”窗口(如图5)。执行“插入→模块”命令,插入一个模块(如“模块1”),双击“模块1”在窗口右边展开“模块1(代码)”编辑窗口,输入如下代码。
(图片较大,请拉动滚动条观看)
Function dxje(q)ybb = Round(q * 100)'将输入的数值扩大100倍,进行四舍五入
y = Int(ybb / 100)'截取出整数部分
j = Int(ybb / 10)y * 100-j * 10 '截取出百分位
zy = Application.WorksheetFunction.Text(y, “[dbnum2]”)'将整数部分转为中文大写
zj = Application.WorksheetFunction.Text(j, “[dbnum2]”)'将十分位转为中文大写
zf = Application.WorksheetFunction.Text(f, “[dbnum2]”)'将百分位转为中文大写
dxje = zy & “元” & “整”
d1 = zy & “元”
If f <> 0 And j <> 0 Then
dxje = d1 & zj & “角” & zf & “分”
If y = 0 Then
dxje = zj & “角” & zf & “分”
End If
End If
If f = 0 And j <> 0 Then
dxje = d1 & zj & “角” & “整”
If y = 0 Then
dxje = zj & “角” & “整”
End If
End If
If f <> 0 And j = 0 Then
dxje = d1 & zj & zf & “分”
If y = 0 Then
dxje = zf & “分”
End If
End If
If q = "" Then
dxje = 0 '如没有输入任何数值为0
End If
End Function
注意:①上面代码中英文单引号“'”后面的字符可以不输入,只是用来解释代码的含义。②代码中“dxje”是自定义函数名称,你可以修改为其他字符。
2、输入完成后,关闭VBA编辑窗口返回工作表状态。
3、如果要转换C2单元格的数值,并将结果保存的D2单元格中(如图6),只要在D2单元格中输入公式:=dxje(C2),确认即可(参见图6)。
注意:通常情况下,自定义的函数只适应于定制的工作簿中,如果要在其它工作簿中使用,请将其制作为加载宏,然后加载一下即可。
本文自定义函数的代码由“中文Excel应用论坛”网友豆豆提供,在此表示感谢!.xls文件下载
第二篇:关于VLOOKUP函数的用法
关于VLOOKUP函数的用法
“Lookup”的汉语意思是“查找”,在Excel中与“Lookup”相关的函数有三个:VLOOKUP、HLOOKUO和LOOKUP。下面介绍VLOOKUP函数的用法。
一、功能
在表格的首列查找指定的数据,并返回指定的数据所在行中的指定列处的数据。
二、语法
标准格式:
VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)
三、语法解释
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以写为:
VLOOKUP(需在第一列中查找的数据,需要在其中查找数据的数据表,需返回某列值的列号,逻辑值True或False)
1.Lookup_value为“需在数据表第一列中查找的数据”,可以是数值、文本字符串或引用。
2.Table_array 为“需要在其中查找数据的数据表”,可以使用单元格区域或区域名称等。
⑴如果 range_lookup 为 TRUE或省略,则 table_array 的第一列中的数值必须按升序排列,否则,函数 VLOOKUP 不能返回正确的数值。
如果 range_lookup 为 FALSE,table_array 不必进行排序。
⑵Table_array 的第一列中的数值可以为文本、数字或逻辑值。若为文本时,不区分文本的大小写。
3.Col_index_num 为table_array 中待返回的匹配值的列序号。
Col_index_num 为 1 时,返回 table_array 第一列中的数值;
Col_index_num 为 2 时,返回 table_array 第二列中的数值,以此类推。
如果Col_index_num 小于 1,函数 VLOOKUP 返回错误值 #VALUE!;
如果Col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
4.Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
四、应用例子
A B C D编号 姓名 工资 科室2005001 周杰伦 2870 办公室2005002 萧亚轩 2750 人事科2005006 郑智化 2680 供应科2005010 屠洪刚 2980 销售科2005019 孙楠 2530 财务科2005036 孟庭苇 2200 工 会
A列已排序(第四个参数缺省或用TRUE)
VLOOKUP(2005001,A17,2,TRUE)等于“周杰伦”
VLOOKUP(2005001,A17,3,TRUE)等于“2870”
VLOOKUP(2005001,A17,4,TRUE)等于“办公室”
VLOOKUP(2005019,A1:D7,2,TRUE)等于“孙楠”
VLOOKUP(2005036,A1:D7,3,TRUE)等于“2200”
VLOOKUP(2005036,A1:D7,4,TRUE)等于“工 会”
VLOOKUP(2005036,A1:D7,4)等于“工 会”
若A列没有排序,要得出正确的结果,第四个参数必须用FALAEVLOOKUP(2005001,A1:D7,2,FALSE)等于“周杰伦”VLOOKUP(2005001,A1:D7,3,FALSE)等于“2870”
VLOOKUP(2005001,A1:D7,4,FALSE)等于“办公室”VLOOKUP(2005019,A1:D7,2,FALSE)等于“孙楠”VLOOKUP(2005036,A1:D7,3,FALSE)等于“2200”
VLOOKUP(2005036,A1:D7,4,FALSE)等于“工 会”
五、关于TRUE和FALSE的应用
先举个例子,假如让你在数万条记录的表格中查找给定编号的某个人,假如编号已按由小到大的顺序排序,你会很轻松地找到这个人;假如编号没有排序,你只好从上到下一条一条地查找,很费事。
用VLOOKUP查找数据也是这样,当第一列已排序,第四个参数用TRUE(或确省),Excel会很轻松地找到数据,效率较高。当第一列没有排序,第四个参数用FALSE,Excel会从上到下一条一条地查找,效率较低。
笔者觉得,若要精确查找数据,由于计算机运算速度很快,可省略排序操作,直接用第四个参数用FALSE即可。
最近爱上了VLOOKUP,有人还对它进行了更新。因为它的漏洞就是只能返回重复值得第一个值。下面就详细来叙述一下吧!
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value 为需要在Table_array第一列中查找的数值。
可以为数值、引用或文本字符串。需要注意的是类型必须与table_array第一列的类型一致。查找文本时,文本不区分大小写;可以使用通配符“*”、“?”。
Table_array 为需要在其中查找数据的数据表。
可以使用对区域或区域名称的引用、常数数组、计算后的内存数组。对区域引用时,可以引用整列,excel会自动判断使用区域。
该参数的第一列必须包含查找的内容,其它列包含需返回的内容;返回内容的列序号由下个参数指定。
Col_index_num 为table_array中待返回的匹配值的列序号。
如为1时,返回table_array第一列中的数值;为2,返回table_array第二列中的数值,以此类推。
如果col_index_num小于1,函数 VLOOKUP 返回错误值值 #VALUE!;
如果col_index_num大于table_array的列数,函数 VLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数VLOOKUP返回时是精确匹配还是近似匹配。
如果为TRUE或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;
近似匹配查询一般用于数值的查询,table_array的第一列必须按升序排列;否则不能返回正确的结果。
如果range_value为FALSE(或0),函数VLOOKUP将返回精确匹配值。
此时,table_array不必进行排序。如果找不到,则返回错误值#N/A;可isna检测错误后使用if判断去除错误信息。
VLOOKUP 经常会出现错误的#N/A,下面是几种可能性: 数据有空格或者数据类型不一致。
可以在lookup_value 前用TRIM()将空格去除。
如果格式不一致,可以将数值强制转换成文本,lookup_value之后用&跟""表示的空字符串。将文本转换成数值,lookup_value*1进行运算。假设有以下两个表格:表1:
姓名 身份证 学科 成绩
张三 310111 物理 A
李斯 310112 化学 B王五 310113 政治 A赵六 310114 物理 B
张三 310111 政治 C
赵六 310114 语文 B刘备 310115 英语 D
表2:
姓名 身份证 住址 学科 成绩
曹操 319723 陕西马超 310197 甘肃赵云 319784 黑龙江
李斯 310112 浙江刘备 310115 江苏张三 310111 上海
请问:如何快速的将表2的学科和成绩自动填入?直接使用VLOOKUP即可。示例如下:
=VLOOKUP($B1,Sheet1!$B$1C$5,2,FALSE)
涵义:在Sheet1的单元格区间B1:C5,查找符合条件为:第一列与当前工作表单元格B1的值相等的第二列的值。
$B1 条件值
Sheet1!$B$1C$5 要查找区间(注意:请使用绝对引用)2 查找的结果为区域中的第几列FALSE 表示精确查找
*具体应用中大家注意各个参数的意义!调整参数来满足个人需要。
第三篇:HEX2DEC函数的用法
HEX2DEC函数的用法
来源: http://excel表格制作excel表格的基本操作
HEX2DEC函数:将十六进制数转换为十进制数
功能说明:将十六进制数转换为十进制数。
语法表达式:HE2XDEC(number)
参数说明:number:表示需要转换为十进制的数。使用函数时,该参数可以直接输入数值,也可以指定单元格。参数位数不能多于10位(40位二进制),其中最高位是符号位,其余39位是数字位。如果是负数,那么用二进制数的补码表示。
使用说明:如果参数number是不合法的十六进制数,函数将返回错误值#NUM!。
如果参数number中包含字母,那么需要加上半角双引号,否则函数将返回错误值#NAME!。如果参数number的位数多于10位,函数也将返回错误值#NUM!。
如果参数number中全是数字时,参数中加或不加半角双引号,返回的结果都相同。如果函数HEX2DEC转换后的数值的位数比places指定的位数多,函数将返回错误值#NUM!。
实际应用:将十六进制数转换为十进制数。
在单元格B2中输入公式“=HEX2DEC(A2)”,转换为十进制数,然后利用自动填充功能,转换其他数值,如图11.14所示。
应用说明:在进制转换的计算中,HEX2DEC函数应用比较广泛。
上一篇:HEX2BIN函数:将十六进制数转换为二进制数
下一篇:在excel中如何按分类合并计算
第四篇:MsgBox函数用法小结
MsgBox函数用法小结 2009-08-26 09:05
1、作用
在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。通常用作显示变量值的一种方式。
2、语法
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])参数说明:
(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。其最大长度约为1024个字符,由所用字符的宽度决定。如果prompt的内容超过一行,则可以在 每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。
(2)Buttons,可选的参数,为数值表达式的值之和,指定显示的按钮的数目及形式、使用的图标样式、缺省按钮及消息框的强制回应等,可以此定制消息框。若省略该参数,则其缺省值为0。设置值见下表。(3)Title,可选的参数,表示在消息框的标题栏中所显示的文本。若省略该参数,则将应用程序名放在标题栏中。
(4)Helpfile,可选的参数,为字符串表达式,提供帮助文件。若有Helpfile,则必须有Context。
(5)Context,可选的参数,为数值表达式,提供帮助主题。若有Context,则必须有Helpfile。
3、Button参数
用于MsgBox函数中Button参数的常量
常量 值 说明 vbOKOnly 0 只显示“确定”按钮
VbOKCancel 1 显示“确定”和“取消”按钮
VbAbortRetryIgnore 2 显示“终止”、“重试”和“忽略” 按钮 VbYesNoCancel 3 显示“是”、“否”和“取消”按钮 VbYesNo 4 显示“是”和“否”按钮
VbRetryCancel 5 显示“重试”和“取消”按钮 VbCritical 16 显示“关键信息”图标 VbQuestion 32 显示“警告询问”图标 VbExclamation 48 显示“警告消息”图标 VbInformation 64 显示“通知消息”图标
vbDefaultButton1 0 第一个按钮是缺省值(缺省设置)vbDefaultButton2 256第二个按钮是缺省值 vbDefaultButton3 512第三个按钮是缺省值 vbDefaultButton4 768第四个按钮是缺省值
vbApplicationModal 0应用程序强制返回;应用程序一直被挂起,直到用户对消息框
作出响应才继续工作
vbSystemModal 4096系统强制返回;全部应用程序都被挂起,直到用户对消息框作
出响应才继续工作 vbMsgBoxHelpButton 16384将Help按钮添加到消息框 VbMsgBoxSetForeground 65536指定消息框窗口作为前景窗口 vbMsgBoxRight 524288文本为右对齐
vbMsgBoxRtlReading 1048576指定文本应为在希伯来和阿拉伯语系统中的从右到左显示 说明:
(1)第一组值(0–5)描述了消息框中显示的按钮的类型与数目;第二组值(16,32,48,64)描述了图标的样式;第三组值(0,256,512,768)说明哪一个按钮是缺省值;而第四组值(0,4096)则决定消息框的强制返回性。将这些数字相加以生成Buttons参数 值的时候,只能由每组值取用一个数字。
(2)这些常数都是VBA指定的,可以在程序代码中使用这些常数名称代替实际数值。
4、返回值
用于MsgBox函数返回值的常量 常数 值 说明 vbOK 1 确定 vbCancel 2 取消 vbAbort 3 终止 vbRetry 4 重试 vbIgnore 5 忽略 vbYes 6 是 vbNo 7 否
5、相关说明
(1)如果同时提供了Helpfile与Context参数,可以按F1键来查看与Context相应的帮助主题,Excel通常会在输入框中自动添加一个帮助(Help)按钮。(2)若在消息框中显示“取消”按钮,则按下ESC键与单击“取消”按钮效果相同。若消息框中有“帮助”按钮,则提供相关的帮助信息。
(3)如果要输入多个参数并省略中间的某些参数,则必须在相应位置加入逗号分界符。
6、示例
(1)使用 MsgBox 函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。示例中的缺省按钮为“否”,MsgBox函数的返回值视用户按哪一个钮而定。并假设DEMO.HLP为一帮助文件,其中有一个帮助主题代码为1000。Dim Msg,Style,Title,Help,Ctxt,Response,MyString Msg=“Do you want to continue ?” ’定义消息文本
Style = vbYesNo + vbCritical + vbDefaultButton2 ' 定义按钮 Title = “MsgBox Demonstration” ' 定义标题文本 Help = “DEMO.HLP” ' 定义帮助文件 Ctxt = 1000 ' 定义帮助主题
Response = MsgBox(Msg, Style, Title, Help, Ctxt)If Response = vbYes Then ' 用户按下“是” MyString = “Yes” ' 完成某操作 Else ' 用户按下“否”
MyString = “No” ' 完成某操作 End If(2)只显示某消息 MsgBox “Hello!”
(3)将消息框返回的结果赋值给变量 Ans=MsgBox(“Continue?”,vbYesNo)
If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub
(4)使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮 Config=vbYesNo+vbQuestion+vbDefaultButton2(5)若要在消息中强制换行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格与字符隔开。如
MsgBox “This is the first line.” & vbNewLine & “Second line.”(6)可以在消息框中使用vbTab常量插入一个制表符。下面的过程使用一个消息框来显示5×5单元格区域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一个新行。注意在MsgBox函数最多只显示1024个字符,因此限制了可显示的单元格数。Option Explicit Sub ShowRangeValue()Dim Msg As String Dim r As Integer, c As Integer Msg = “" For r = 1 To 5 For c = 1 To 5 Msg = Msg & Cells(r, c)& vbTab Next c Msg = Msg & vbCrLf Next r MsgBox Msg End Sub(7)在消息框语句中运用工作表函数以及设置显示的数置格式,如下面语句所示: MsgBox ” selection has “ & m & ” cells.“ & Chr(13)& ” the sum is :“ & Application.WorksheetFunction.Sum(Selection)& Chr(13)& ”the average is :“ & Format(Application.WorksheetFunction.Average(Selection), ”#,##0.00“), vbInformation, ”selection count & sum & average“ & Chr(13)
MsgBox函数用法补充 2009-08-26 09:02 本文转自:http://club.excelhome.net/viewthread.php?tid=196066&highlight=msgbox%3Bfanjy
MsgBox函数能很方便地显示消息,并与用户进行交互,其具体使用方法见《MsgBox函数用法小结》。下面介绍在使用MsgBox函数时遇到的特殊问题及解决方法,并就MsgBox函数所显示的对话框的排版进行一些探讨。
问题的提出及解决
在VBE编辑器中输入下面的代码后,MsgBox ”I am “a” boy.“ 光标移出该句代码后,将会提示“编译错误:缺少:语句结束”。即,如何在信息中显示双引号(“ “)? 解决的方法是,在要显示双引号的字符或字符串外面使用双层双引号,如上面的代码,正确的输入如下: MsgBox ”I am “"a”“ boy.” 结果如图1所示。
图1
信息框中的各种图标
在MsgBox函数中为参数buttons指定常量值,可以显示相应的图标。其中,常量 vbExclamation显示“警告消息”图标,常量vbQuestion显示“警告询问”图标,常量vbCritical显示“关健信息”图标并伴有 提示声,常量vbInformation显示“信息”图标,对应的图标如下图2所示。注意,这四个常量若相互组合,将不会显示任何图标。
控制换行和对齐 在MsgBox函数中,可以使用常量vbCrLf或者常量vbNewLine在显示的消息框中强制换行。下面的代码运行后将显示如图3所示的有4行文本的消息框。Sub testLine()MsgBox “第一行” & vbCrLf _ & “第二行” & vbCrLf _ & “第三行” & vbNewLine _ & “第四行” End Sub 图3
同时,还可以使用常量vbTab来插入一个制表符分隔列,达到使消息框中各列对齐的效果。下例用一个消息框显示当前工作表中A1至F11单元格区域中的内容,结果如图4所示。Sub 测试排列()Dim msg As String Dim r As Long, c As Long msg = "" For r = 1 To 11 For c = 1 To 6 msg = msg & Cells(r, c)& vbTab Next c msg = msg & vbCrLf Next r MsgBox msg, vbInformation End Sub
图4 但是,MsgBox函数最多只能接受1023个字符,即限制了可以在消息框中显示内容的长度。
第五篇:excel中if函数的用法
excel如何使用if函数?
IF函数的语法为: =IF(条件,条件成立的返回的值,条件不成立时返回的值)
例 =IF(B7=“",”“,C7/B7)公式说明:公式的意思是如果B7等于空,则在单元格里显示空,否则显示C7/B7的结果。
如下图所示。
二,多条件判断
在使用IF进行判断的时候,有时不只是一个条件,而是有多个条件组成的混合条件,这时候该怎么处理呢?
如下图所示。如果B列和C列有一例为空,则公式就会出错或出现不符的百分比,这时就需要对两列进行判断,看是不是有一列的内容是空值,如果是空值,则不显示,怎么同时对两列进行判断呢?我们可以这样设置公式 =IF(AND(B2<>”“,C2<>”“),C2/B2,”0%“)公式中借用了and函数,AND函数可以表示两个条件同时成立,如果同时成立则返回TRUE(正确),有任一个条件不成立就会返回FALSE(错误).三IF函数嵌套
IF函数嵌套就是有多个IF函数一层套一层,什么时候会用到IF嵌套呢,是有多个条件要分别判断时会用到,举个例子吧。
=IF(B2<60,”不及格“,IF(B2<70,”及格“,IF(B2<85,”良好“,”优秀“)))上面公式中就进行了多次判断,第一次是判断是不是小于60,如果小于60则显示不及格,如果不小于60呢?下面还要进行及格,良好和优秀成绩的判断,所以还需要还再用IF函数。怎么连接呢,很简单。把下一个IF作为本次IF的第二个参数。即:
=IF(第一个条件,第一个条件成立时返回的值,if(第二个条件,第二个条件成立时返回的值,if(第三个条件,第三个条件成立时返回的值...IF(。)
注意:
1、IF函数只能嵌套七层,不但针对IF,对所有的函数都适合,也就是说函数嵌套函数,不能超过七层。
2、在设置IF公式的时候,如果前面的IF条件成立,后面的就不会再判断了,所以要合理的设置判断的条件,不能这样设置 =IF(A1<100,”ABC“,IF(A1<10,”bcd"))上面的公式中,第二个条件永远无出头之日的,因为如果小于10,必然小于100,只会判断第一个条件而第二个条件没有被判断的机会。