3个回答
展开全部
你看是不是这种结果:
函数这么写的:
=IF(AND(B2>=INT(LEFT(A2,FIND("~",A2)-1)),B2<=INT(RIGHT(A2,LEN(A2)-FIND("~",A2))))=FALSE,0,B2)
使用函数:
find("字符",值) 获取~符号位置
int(字符) 将字符型数字转换成真正的数字
left,right,len我就不介绍
and(表达式1,表达式2....)=true 并列条件
if(表达式,表达式成立的值,不成立的值) 条件取值
函数较多,另外一种方法就是使用VBA自定义一个函数,我们先新建一个模块
插入函数
'///condition//条件字符串
'///data//存放数据的单元格
Public Function get_value(condition As Range, data As Range)
Dim min, max '//定义最小值、最大值、数组
min = Int(Split(Trim(condition.Formula), "~")(0))
max = Int(Split(Trim(condition.Formula), "~")(1)) '//存储切割着两个值转换格式
Dim da
da = Round(Trim(data.Formula), 3) '//获取data里面的值,格式化,取保留三位小数
If da >= min And da <= max Then '//如果da在min和max之间就取自己的值,如果不是就是0
get_value = da
Else
get_value = 0
End If
End Function
我们再回去看看函数是否生效
为啥不行了呢?
原因是VBA取值着range.Formula这玩意是单元格字表值,你选择了公式,他就是公式自己写法,不会换算成值的,修改一下:
以上是用EXCEL自身函数和VBA自定义函数,仅供参考!
展开全部
如果数值在B2单元格,那么输入
=IF(AND(B2>=0,B2<=10),B2,0)
或者=IF(OR(B2>10,B2<0),0,B2)
=IF(AND(B2>=0,B2<=10),B2,0)
或者=IF(OR(B2>10,B2<0),0,B2)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能直接写0<a1<40,EXCEL不认识这个,改为
and(a1>0,a1<40)之类的
and(a1>0,a1<40)之类的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |