在EXCEL中,怎样把一串数值转化为英文大写金额,要按照以下格式
使用自定义函数
步骤:ALT+F11,插入模块,复制下方代码
然后在需要使用的地方输入公式:=SpellNumber(单元格地址)
效果图如下,B1公式为=SpellNumber(A1)
Function SpellNumber(ByVal MyNumber)
Dim Dollars, Temp Dim DecimalPlace, Count ReDim Place(9) As String Application.Volatile True Place(2) = " THOUSAND " Place(3) = " MILLION " Place(4) = " BILLION " Place(5) = " TRILLION " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(MyNumber, ".") If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "" Case "One" Dollars = "One Dollar" Case Else Dollars = "US DOLLARS " & Dollars End Select SpellNumber = Dollars End FunctionFunction GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) If Mid(MyNumber, 1, 1) "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " HUNDRED " End If If Mid(MyNumber, 2, 1) "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End FunctionFunction GetTens(TensText) Dim Result As String Result = "" If Val(Left(TensText, 1)) = 1 Then Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "ELEVEN" Case 12: Result = "TWELVE" Case 13: Result = "THIRTEEN" Case 14: Result = "FOURTEEN" Case 15: Result = "FIFTEEN" Case 16: Result = "SIXTEEN" Case 17: Result = "SEVENTEEN" Case 18: Result = "EIGHTEEN" Case 19: Result = "NINETEEN" Case Else End Select Else Select Case Val(Left(TensText, 1)) Case 2: Result = "AND TWENTY " Case 3: Result = "AND THIRTY " Case 4: Result = "AND FORTY " Case 5: Result = "AND FIFTY " Case 6: Result = "AND SIXTY " Case 7: Result = "AND SEVENTY " Case 8: Result = "AND EIGHTY " Case 9: Result = "AND NINETY " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) End If GetTens = Result End FunctionFunction GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "ONE" Case 2: GetDigit = "TWO" Case 3: GetDigit = "THREE" Case 4: GetDigit = "FOUR" Case 5: GetDigit = "FIVE" Case 6: GetDigit = "SIX" Case 7: GetDigit = "SEVEN" Case 8: GetDigit = "EIGHT" Case 9: GetDigit = "NINE" Case Else: GetDigit = "" End SelectEnd Function
工具:2010版excel
1、先打开excel,以下图为例,需要将A1单元格中的数字转化成中文大写金额格式并在B1单元格中显示结果;
2、选中B1单元格并输入公式“=SUBSTITUTE(SUBSTITUTE(TEXT(INT(A1),"[DBNum2][$-804]G/通用格式元"&IF(INT(A1)=A1,"整",""))&TEXT(MID(A1,FIND(".",A1&".0")+1,1),"[DBNum2][$-804]G/通用格式角")&TEXT(MID(A1,FIND(".",A1&".0")+2,1),"[DBNum2][$-804]G/通用格式分"),"零角","零"),"零分","")”;
3、按下回车键后就可以在B1单元格中得出结果了。
必须用VBA才能实现。
请补充:
(1)有美分时,百位和十位之间无AND,对吧?
(2)1234567.56的格式是什么?即,百万和十万之间是否用AND。
根据https://www.thebalance.com/write-numbers-using-words-4083198的规则,修改了微软提供的VBA代码。
按Alt+F11,打开VBA窗口,点击插入、模块,将下列代码复制过去,然后可以在工作表中用=SpellNumber(A1)或=SpellNumber(234.56)的形式进行转换。代码:
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = Right(MyNumber * 100, 2) * 1
'GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " Only"
Case Else
Cents = " and " & Cents & "/100" & " Only"
End Select
SpellNumber = "SAY U. S. DOLLARS " & Dollars & Cents
End Function
' Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
' Converts a number from 10 to 99 into text.
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else ' If value between 20-99...
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function
' Converts a number from 1 to 9 into text.
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
需要使用函数,如果你转换的多,需要用到宏
解答参考:http://www.excelpx.com/home/show.aspx?id=33618
转化英文字母大小写的几个EXCEL函数
[日期:2011-12-30] 来源: 作者:admin [字体:大 中 小]
假设您为了增强可读性,要将文字从大写转换为小写,或从小写转换为适当的大小写混合(如首字母大写)。若要更改文字的大小写,可以使用 UPPER、LOWER 或 PROPER 函数,如下例所示。
示例
如果将示例复制到一个空白工作表中,可能会更易于理解。
如何复制示例?
1
2
3
4
5
6
A B
名称
sara Davis
公式 说明(结果)
=UPPER(A2) 将文字全部更改为大写 (SARA DAVIS)
=LOWER(A2) 将文字全部更改为小写 (sara davis)
=PROPER(A2) 将文字更改为首字母大写 (Sara Davis)
注释 通常,使用这些函数一次只能更改一个单元格中文字的大小写。若要更改某单元格区域内文字的大小写,可以在数组公式中使用这些函数。例如,若要将单元格 A1:A3 中的文字全部转换为大写,请选择单元格 B1:B3,输入公式 =UPPER(A1:A3),然后按 Ctrl+Shift+Enter 使该公式成为数组公式。单元格 B1:B3 中显示的结果全部为大写。有关详细信息,请参阅数组公式指南和示例。
函数详细信息
UPPER 函数 将文字转换为大写。
语法
UPPER(text)
括号内的“text”参数指的是要转换为大写的文字。UPPER 不更改文字内的非字母字符。
LOWER 函数 将文字串中的所有大写字母转换为小写。
语法
LOWER(text)
括号内的“text”参数指的是要转换为小写的文字。LOWER 不更改文字内的非字母字符。
PROPER 函数 将文字串的首字母以及文字中任何非字母字符之后的任何其他字母转换成大写。将其余字母转换为小写。
语法
PROPER(text)
括号内的“text”参数指的是用引号括起来的文字、返回文字的公式、对含有要部分转换为大写的文字的单元格的引用。
亲,您这些都是英文大写啊。。。还要怎么转换呢、楼上的太强大了,确实有个函数公式可以直接转换,但是我忘了,他的那么多,我都看不懂,好像excel设置单元格式---特殊--大小自己选。
可是亲,您的英文大写???????好像还真心的只有那位强大的函数。。。
找了找,好像只能vba编程解决。代码见连接,仅供参考。
网页链接
要用vba来完成。。。。
在Excel表格中怎样输入日期?
方法一:手动输入日期 1. 打开Excel表格,选择要输入日期的单元格。2. 在单元格中输入日期,例如“2023-03-17”。3. 按下回车键,日期将以默认的日期格式显示在单元格中。方法二:使用快捷键输入日期 1. 打开Excel表格,选择要输入日期的单元格。2. 按下Ctrl+;(分号)键,将输入当前日期。3. 按...
在excel表中怎样保留需要的内容?
1. 使用筛选功能:选择数据范围,点击Excel的菜单栏中的"数据"选项卡,然后点击"筛选"按钮。在列标题上会出现筛选箭头,点击箭头可以选择需要保留的特定值或条件,从而筛选出所需的内容。2. 使用排序功能:选择数据范围,点击Excel的菜单栏中的"数据"选项卡,然后点击"排序"按钮。在排序对话框中,选择要...
怎样在excel表格中计算加减乘除?
1、加法:打开Excel表格,选择单元格,输入=。选择数字,输入+,再选择数字,按下回车键执行加法计算。2、减法:选择单元格,输入=,选择数字,输入-,再选择数字,按下回车键执行减法计算。3、乘法:选择单元格,输入=,选择数字,输入*,再选择数字,按下回车键执行乘法计算。4、除法:选择单元格,输...
怎样在Excel表格中录入指定单元格的内容?
- 选中需要录入的单元格,输入公式“=TODAY()”(不含引号),然后按回车键。- 在另一个单元格中输入公式“=TEXT(TODAY(), "mm")”(不含引号),然后按回车键。- 选中需要录入月份的单元格区域,使用填充功能,选择“序列”。- 在序列对话框中选择“列”,输入步长为“1”,然后点击“确定”。
怎样在excel中输入文字和数字?
1.选中需要合并的单元格;2.在单元格中输入=“文字”&数字,其中“文字”用双引号包裹起来;3.按下回车键,即可看到文字和数字已经合并在一起了。需要注意的是,使用这种方法合并的内容会变成文本格式。Excel中要将数字和文字加在一起,也就是说我们需要在一个单元格内显示的内容是既有文字也可以有...
怎样在Excel中做数据分析?
在Excel中,数据分析可以通过点击菜单栏中的“数据”选项卡来调出。详细解释如下:一、打开Excel软件 确保你的Excel软件已经打开并且工作表已经被打开或创建。二、找到“数据”选项卡 在Excel界面的顶部菜单栏中,你会看到一个名为“数据”的选项卡。点击这个选项卡,会展开一系列的数据分析功能。三、使用...
在excel表中怎样输入带圈的数字?
方法一:使用“符号”功能 1. 在 Excel 中,单击所需单元格。2. 从工具栏中选择“插入”选项卡,然后单击“符号”。3. 在“符号”对话框中,选择所需的带圈数字字符,单击“插入”并关闭对话框。4. 此时,带圈数字就会显示在该单元格中。方法二:使用“自定义数字格式”功能 1. 在 Excel 中,...
在excel表格中怎样给单元格加上逗号?
1、打开需要操作的EXCEL表格,选中相关单元格,通过Ctrl+1打开设置单元格格式。2、在数字标签页中,点击左侧的“自定义”,然后在右侧文本框中输入@","并点击确定即可。3、返回EXCEL表格,发现成功在excel表格的每一个表格后面都加一个逗号。给Excel单元格添加逗号,通常是指为单元格内的文本添加逗号,...
怎样把Excel中的数据颠倒过来呢?
首先,选中需要颠倒顺序的单元格区域。接着,点击工具栏上的“数据”选项卡,并选择“排序”。在弹出的排序对话框中,选择“按行排序”,并选择按数值或字母顺序进行升序或降序排列。选择升序排列时,Excel将最小的值放在第一行,最大的值放在最后一行,从而实现了数据首尾的颠倒。例如,如果有一个包含...
Excel表格中怎样乘除excel表如何乘除
在Excel表格中,您可以使用以下方法进行乘除计算:乘法:在要输入公式的单元格中点击,然后输入等号“=”。输入要相乘的单元格或数字,后面紧跟着乘号“*”。输入要相乘的另一个单元格或数字,然后按下回车键。例如,要计算A1单元格和B1单元格中的值相乘,可以在C1单元格中输入公式“=A1*B1”,然后按...
吁炊福康: 如果是输入这个数字(过长)而采用了“文本”显示的,而后需要此“文本”进行计算的话,只需要把此文本转换成数字即可例:A1输入1235910000000这个数值,需要后续它能进行数学计算的只需要在后续计算时输入:=VALUE(A1)此时这个简单函数就把刚才的文本数值转换成数字数值,可以进行计算了,如:=VALUE(A1)+500显示即为:12359100000500了.
新巴尔虎左旗13312549614: 怎么用Excel表格把数据转换 - ?
吁炊福康: 你把要转成的数字分别放在F和G列 例如F1=340 G1=8 F2=132 G2=5 E2公式=IF(ISNA(VLOOKUP(D2,F:G,2,)),"",VLOOKUP(D2,F:G,2,))下拉 完成后你只要数字的话可以选择性粘贴-数值-覆盖在原公式上
新巴尔虎左旗13312549614: 怎样把excel表格中的数字转换单位 - ?
吁炊福康: 把excel表格中的数字转换单位的具体步骤如下: 我们需要准备的材料分别是:电脑、excel表格. 1、首先我们打开需要编辑的excel表格,选中要编辑的单元格,右键单击打开“设置单元格格式”. 2、然后我们在弹出来的窗口中点击选择“自定义”. 3、然后我们在弹出来的窗口中点击类型下方的输入框,输入“0.00万”即可.
新巴尔虎左旗13312549614: 如何把excel表格中公式的值转换为数字 - ?
吁炊福康: 把excel表格中公式的值转换为数字的具体步骤如下: 以excel表格2010版本为例: 1、首先打开需要编辑的excel表格,进入到编辑页面中. 2、然后点击选择想要转换为数字的公式,右键单击单元格选择“复制”选项. 3、然后鼠标右键继续单击原来的单元格选择粘贴选项中的数值就可以了.
新巴尔虎左旗13312549614: 如何的Excel中把用公式计算出来的数值转 - ?
吁炊福康: 在excel中将公式值转化为数值,可以通过选择性粘贴的方法.具体操作是:选择数据区域,复制,然后在原数据区域右键,选择性粘贴,选择数值.公式值即可变成数值.
新巴尔虎左旗13312549614: EXCEL中怎么能快速的将一整列的公式化数字转化成常规数字? - ?
吁炊福康: 使用粘贴值的功能可以达到 1 复制需要的公式 2 在新列中粘贴值 就是选数字的选项就可以粘贴过来数字了,这样就是常规数字.
新巴尔虎左旗13312549614: 在EXCEL中快速实现文本和数值相互转换的几种方法 - ?
吁炊福康: 在实际工作中经常会碰到EXCEL表中的文本和数值转换问题,尤其是从相关系统下载的报表数据大多是文本格式,不转换成数值格式就没有办法计算;而有时因特殊需求,也会碰到需要将数值型数据转化成文本格式时候.在做上述操作时,仅...
新巴尔虎左旗13312549614: Excel中如何将一串数字字符串转化为另一种格式 例如 02500900 转为 25.0 * 9.0 - ?
吁炊福康: 有个麻烦的办法 设原始数据在A1,目标数据在B1 B1输入=(left(A1,5)*0.01)*(right(A1,3)*0.01)
新巴尔虎左旗13312549614: 在excel中如何实现数字的直接转换,如我要把1转换为0.36,2转换为0.72,3转换为1.08……依此类推.?
吁炊福康: <p>先在另一工作表上输入0.36,选择复制,再回到你需要转换的工作表,按下F5定位,再按“定位条件”,然后选择“常量”,即可选中所有数字.再在包含这些数字的单元格中,右键选择“选择性粘贴”,然后选择“运算”中的“乘”即可...
新巴尔虎左旗13312549614: excel里怎么把单元格里的数字内容转为数值? - ?
吁炊福康: 1、用智能标记的功能,这时,只要全选这些带有绿色标识的单元格,再点击转化为数字即可.2、用选择性粘贴:一个空的单元格,再选择需要转化的单元格,然后用选择性粘贴----数值/加(减)的方法;在一个空的单元格里输入1,再选择需要转化的单元格,然后用选择性粘贴—数值/乘的方法,也可.3、用数据分列的方法,选择该列数据,点数据-----分列,第一步选择分隔符号,第二步将所有的分隔符号去除,第三步选择常规,即可.4、用Value函数,假设数据在A列,在B1单元格里输入=VALUE(A1)其余公式下拉5、假设数据在A列,在B1单元格里输入=A1*1公式下拉