EXCEL难题一网打尽(7)

2019-04-21 10:13

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 用


EXCEL难题一网打尽(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:VirtualBox虚拟机下安装 CentOS6.5 - X64位和 Oracle 11g R2记录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: