Excel中的自定义文本使用宏表示两个数字之间的值

Excel中的自定义文本使用宏表示两个数字之间的值,excel,vba,Excel,Vba,我有一列1-100的数据,我想将其分为4个区域: Zone A : 0 < val <= 20 Zone B : 20 < val <= 40 Zone C : 40 < val <= 60 Zone D : 60 < val <= 100 A区:0

我有一列1-100的数据,我想将其分为4个区域:

Zone A : 0 < val <= 20
Zone B : 20 < val <= 40
Zone C : 40 < val <= 60
Zone D : 60 < val <= 100

A区:0
Function zone_num(intNum As Integer)

zone_num = IIf(intNum < 0, "Error -ve", _
            IIf(intNum < 20, "Zone A", _
            IIf(intNum < 40, "Zone B", _
            IIf(intNum < 60, "Zone C", _
            IIf(intNum < 100, "Zone D", _
            "Error too high")))))

End Function
Function zone_num(intNum为整数)
zone_num=IIf(intNum<0,“错误-ve”_
IIf(整数<20,“A区”_
IIf(整数<40,“B区”_
IIf(整数<60,“C区”_
IIf(整数<100,“D区”_
“错误太高”;);)
端函数
这在工作表公式中也是可能的,如下所示


=选择(匹配(H14,{0,21,41,61}),“a”,“b”,“c”,“d”)
或使用
索引
匹配
,正如@JvdV所说。

你可以这样做

Function zone_num(intNum As Integer)

zone_num = IIf(intNum < 0, "Error -ve", _
            IIf(intNum < 20, "Zone A", _
            IIf(intNum < 40, "Zone B", _
            IIf(intNum < 60, "Zone C", _
            IIf(intNum < 100, "Zone D", _
            "Error too high")))))

End Function
Function zone_num(intNum为整数)
zone_num=IIf(intNum<0,“错误-ve”_
IIf(整数<20,“A区”_
IIf(整数<40,“B区”_
IIf(整数<60,“C区”_
IIf(整数<100,“D区”_
“错误太高”;);)
端函数
这在工作表公式中也是可能的,如下所示


=选择(匹配(H14,{0,21,41,61}),“a”,“b”,“c”,“d”)
或使用
索引
匹配
,如@JvdV所说。

在这种情况下,罗马有多种方法,例如
索引
匹配


样本数据:


代码:


结果:


在这种情况下,可以通过多种方式到达罗马,例如
索引
匹配


样本数据:


代码:


结果:


select case
将是你研究的一个良好开端。@Nathan_Sav你忘了超链接吗?不,用谷歌搜索vba
select case
中的超链接将是你研究的一个良好开端。@Nathan_Sav你忘了超链接吗?不,用谷歌搜索vbaThis返回>100作为d区,想想op,想要一个100截止值too@Nathan_Sav,OP表示他的数据在1-100之间。因此,我认为这会很好。我只是想发表我对这个的看法。一个UDF,就像你的一样,听起来很合适,所以我投票了。这不是一个批评,是在测试你和我的关系:)没有把它当作坏的批评,所以没有担忧@Nathan_SavThis返回>100,因为d区,想想op,想要100分too@Nathan_Sav,OP表示他的数据位于1-100之间。因此,我认为这会很好。我只是想发表我对这个的看法。一个UDF,就像你的一样,听起来非常合适,所以我投了更高的票。这不是一个批评,是在测试你和我的关系:)没有把它当作坏的批评,所以不用担心@Nathan_Sav