我在 Windows 上使用 Excel 2010,我是 Excel 新手,但我会编程,所以欢迎你向我抛出 VBA。我有一系列单元格,用户可以在其中输入数字,另一个单元格需要根据该数字所在的间隔显示分类。
例如:
0%: -> nothing
01-20%: -> not a lot
21-50% -> below average
etc...
这对于许多不同的格式(整数、浮点数)都是必要的。最优雅的解决方法是什么?
答案1
另一个选择是将包含 bin 数据的查找表放在工作簿的某个位置。然后,您可以使用函数VLOOKUP
通过将输入与表格进行比较来对输入进行分类。
在此示例数据中,查找表位于E3:F8
且用户输入位于B1
,您将使用以下公式:
=VLOOKUP(B1,$E$3:$F$8,2,TRUE)
答案2
您没有说明这必须在 VBA 中。我相信使用公式来实现比尝试通过用户输入触发 VBA 更容易。
因此,这里有一种方法可以使用嵌套IF
语句AND
来实现您所描述的内容。在本例中,值输入在 中A1
,分类显示在 中B1
。
将此公式放入B1
。
=IF(AND(A1>0.7,A1<=1),"above average",IF(AND(A1>0.5,A1<=0.7),"average",IF(AND(A1>0.2,A1<=0.5),"below average",IF(AND(A1>0.01,A1<=0.2),"not a lot", ""))))
您可能需要调整一些东西来满足您的需要。
答案3
如果您更喜欢使用 VBA,然后根据需要自定义和过度复杂化,哈哈:
Function MyFunction(inputvalue As Double)
Select Case inputvalue
Case Is = 0:
MyFunction = "nothing"
Case Is <= 0.2:
MyFunction = "not a lot"
Case Is <= 0.5:
MyFunction = "below average":
Case Is > 0.5:
MyFunction = "above average"
End Select
End Function