第三数进行四舍五入处理
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), "[DBNum2]") & "元"
'防止出现零元的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 = "." Then
strLastvalue = Right(strBal, 1)
strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角整"
Else
If strLastvalue = "0" And strLastvalue <> "0" Then
strLast = "零"
Else
'防止出现零角几分的bug!
If strrmbdx = "" And strLastvalue = "0" Then
'strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角"
strLast = ""
Else
If strrmbdx <> "" And strLastvalue = "0" Then
strLast = "零"
Else
strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角"
End If
End If
End If
strLastvalue = Right(strBal, 1)
If strLastvalue = "0" Then
strLast = "整"
Else
strLast = strLast & Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "分"
End If
End If
strrmbdx = strrmbdx & strLast
Else
strrmbdx = strrmbdx & "整"
End If
rmbdx = a & strrmbdx
End Function
方法12
=IF(ISTEXT(C2),"","人民币:"&TEXT(INT(C2),"[dbnum2]")&"元"&IF(INT(C2*10)-INT(C2)*10=0,"",TEXT(INT(C2*10)-INT(C2)*10,"[dbnum2]")&"角")&IF(INT(C2*100)-INT(C2*10)*10=0,"整",TEXT(INT(C2*100)-INT(C2*10)*10,"[dbnum2]")&"分"))
……还有很多方法编者没有收集。
中国式的排名 函数应用
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中复制如下的公式,然后往右复制: