NumberStr = NumberStr & \元整\Else
NumberStr = Replace(NumberStr, \元\If DotLoc2 = 2 Then
NumberStr = NumberStr & \分\
If Mid(NumberStr, DotLoc1 + 1, 1) <> \零\NumberStr1 = Mid(NumberStr, 1, DotLoc1 + 1) & \角\NumberStr2 = Right(NumberStr, 2) NumberStr = NumberStr1 & NumberStr2 End If Else
NumberStr = NumberStr & \角整\End If End If
On Error Resume Next
UNumber = Replace(NumberStr, \零元\End Function 方法2、
=IF(TRUNC(H16)=H16,TEXT(H16,\通用格式\元整\通用格式
\
元
\/
通
用
格
式
\
角
\
零
\整\方法3、
=IF(F10=0,\
通
用
格
式
元
\\零\通用格式角\
\通用格式分\方法4、
人民币大写的函数公式,可正负,最多两位小数。 =IF(A1<0,\
负
\
元
整元元角整
\\\
角零
整
\
\
\分\方法5
修改一下4:根据剑魔兄的测试,发现有一个问题,如-100.05,现修正如下: =IF(A1<0,\
负
\
元
整元元角
\\\
角
整零
\\
\分\方法6
=IF(A1<0,\负\通用格式\元 \整\通用格式\角\整\通用格式\分\方法7 无
条
件
舍
去
:
=CONCATENATE(IF(A1<0,\
负
\
零元
\
\1*10),1),\\\分\
小数点后两位四舍五入: =CONCATENATE(IF(A1<0,\负\零\
元角整
\RIGHT(TRUNC(ROUND(A1,2)*10),1)=\
角
\))=ROUND(A1,2)),\整\分\方法8 无
条
件
舍
去
:
=IF(A1<0,\
负
\
元
\\
角
\分\整\
小数点后两位四舍五入: =IF(A1<0,\负\元\BER(FIND(\
角
\分\整\方法9
再简化如后,请大家试试。 无条件舍去:
=IF(A1<0,\负\元
\1*10))=\角\分\整\
小数点后两位四舍五入: =IF(A1<0,\
负
\
元
\R(FIND(\
\分\整\方法10(好)
Function RMB_DX(money As Variant)
Dim m1 As Long, n1 As Long, n2 As Integer, n3 As Integer m1 = Application.WorksheetFunction.Round(money * 100, 0) n1 = Int(m1 / 100)
n2 = Int(m1 / 10) - n1 * 10 n3 = m1 - n1 * 100 - n2 * 10 If n3 = 0 Then RMB_DX = \整\Else
RMB_DX = Application.WorksheetFunction.Text(n3, \分\End If
If n2 = 0 Then
If n1 <> 0 And n3 <> 0 Then RMB_DX = \零\Else
RMB_DX = Application.WorksheetFunction.Text(n2, \角\End If
If n1 <> 0 Or m1 = 0 Then
RMB_DX = Application.WorksheetFunction.Text(n1, \元\End If End Function 方法11
unction rmbdx(value, Optional m = 0)
'支持负数,支持小数点后的第三位数是否进行四舍五入处理 '默认参数为0,即不将小数点后的第三位数进行四舍五入处理 'redwin增改 2002-10-11 'Application.Volatile True On Error Resume Next
角
Dim a
If value < 0 Then a = \负\Else a = \End If
'当参数m不输入(默认为0)或为0时,小数点后的第三数不进行四舍五入处理 '当参数m为1或其它数值时,小数点后的第三数进行四舍五入处理 value = CCur(Abs(value)) If m = 0 Then
value = Fix(value) + (Fix((value - Fix(value)) * 100)) / 100 Else
value = Round(value, 2) End If
strrmbdx = Application.WorksheetFunction.Text(Int(value), \元\'防止出现零元的bug! If value >= 1 Then strrmbdx = strrmbdx Else
strrmbdx = \End If
strBal = Str(value)
If Int(value) <> value Then
strLastvalue = Left(Right(strBal, 2), 1) If strLastvalue = \strLastvalue = Right(strBal, 1)
strLast = Application.WorksheetFunction.Text(strLastvalue, \角整\Else
If strLastvalue = \strLast = \零\Else
'防止出现零角几分的bug!
If strrmbdx = \
'strLast = Application.WorksheetFunction.Text(strLastvalue, \角\strLast = \Else
If strrmbdx <> \
strLast = \零\Else
strLast = Application.WorksheetFunction.Text(strLastvalue, \角\End If End If End If
strLastvalue = Right(strBal, 1) If strLastvalue = \strLast = \整\Else
strLast = strLast & Application.WorksheetFunction.Text(strLastvalue, \分\End If End If
strrmbdx = strrmbdx & strLast Else
strrmbdx = strrmbdx & \整\End If
rmbdx = a & strrmbdx End Function 方法12
=IF(ISTEXT(C2),\
人
民
币
:
\
元角
\
\整\分\??还有很多方法编者没有收集。 中国式的排名 函数应用
RANK 是个排名函数 但有一个问题象上面有两个100分 也就是两并列第一 排名就从第三名开始没有第二名 也许这个美国式的排名 中国式的排名 前面有两个一样的分数并列第一后是 第二名 怎样用函数实现. 解答:在B3中复制如下的数组公式,然后往右复制:
{=SUM(IF(B1=LARGE(IF(LARGE($B$1:$H$1,COLUMN($A$1:$G$1))=IF(ISERROR(LARGE($C$1:$I$1,COLUMN($A$1:$G$1))),0,LARGE($C$1:$I$1,COLUMN($A$1:$G$1))),0,LARGE($B$1:$H$1,COLUMN($A$1:$G$1))),COLUMN($A$1:$G$1)),COLUMN($A$1:$G$1),0))}
也可换个方式不用数组,在B3中复制如下的公式,然后往右复制: =RANK(B1,$B1:$H1)+COUNTIF($B$1:B1,B1)-1 当做日报表累计数自动加
当做日报表时,怎样让月累计数自动加上? 就是要月累计自动加上今天的当日收入数,今天只输入当日收入,我想用用前一天的月累计数加上今天的当日收入数为今天的月累计数.情况是一月一个工作薄,每一个工作薄下30个工作表,用每一天的日期为报表名.我想把月累计的公式写为 =sheet17!c5 中的 17 用
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库EXCEL难题一网打尽(7)在线全文阅读。
相关推荐: