在给定的工作表中,我有一个销售目标完成%,以及相应的奖金%。
我想检查sheet1列AI中的%,并从该表中找到相应的%。
For a2 = 3 To lastRowx
If CInt(x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value) <= 0.8 Then
pc = 0.5
ElseIf CInt(x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value) >= 1.5 Then
pc = 5
Else
Set n3 = x.Sheets("Payout Curve").Range("A4:A74").Find(What:=x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value, LookAt:=xlWhole)
MsgBox x.Sheets("Sheet1").Range("AI" & CStr(a2)).Value
'x.Sheets("Sheet1").Range("AT" & CStr(a2)).Value = x.Sheets("Payout Curve").Range("B" & CStr(n3.Row)).Value
End If
Next a2
但是在使用find函数时,我得到了一个错误,因为它将值作为小数,而不是百分比。比如84%应该返回60%,但我的80%被检测为0.8。
1条答案
按热度按时间izkcnapc1#
是的,百分比值实际上是十进制值,因此Excel将其视为十进制值。
%
的意思无非是*(1/100)
。80%只是显示0.8的另一种方式。如果使用%值,则始终使用十进制值。如果你在一个单元格中有一个(十进制)值,并希望十进制值以xx%格式显示,你只需要更改单元格
NumberFormat
-底层值将始终是十进制,但它的显示方式可以更改。你甚至可以用一些VBA代码来做这件事。更改
NumberFormat
属性以将小数显示为百分比值,可以如下所示进行: