使用视觉基本编码或某些Excel功能找到行驶里程的正确列的最佳方法是什么,并从该列返回价格?这里不能使用HLOOKUP
,因为查找值不准确,表中的范围也没有特定的间隔(如果是,我可以使用例如FLOOR(travelled miles/100)*100
并找到价格HLOOKUP
)。显然,使用小桌子手动查找价格很容易,但使用大桌面电脑会更快。
答案 0 :(得分:0)
请注意,如果x
介于a
和b
之间,那么MEDIAN(x,a,b)=x
。将其与一些嵌套的IF结合起来:
=IF(MEDIAN(B5,B1,C1-1)=B5,B2,IF(MEDIAN(B5,C1,D1-1)=B5,C2,IF(MEDIAN(B5,D1,E1-1)=B5,D2)))
我在手机上,所以只做了前三个案例,但希望你能看到它是如何继续的。
(应该注意你需要删除破折号才能工作)
修改强>
我也想在上面的评论中回答你的问题。您可以使用以下内容来保留破折号,但可以使用数字。
假设单元格A1的值为10-
。我们可以使用FIND
函数计算-
出现的位置,然后使用LEFT
函数仅返回破折号之前的字符:
=LEFT(A1,FIND("-",A1)-1)
这将返回值10
,但它会将其作为字符串返回,而不是数字 - 基本上Excel会认为它是文本。要强制Excel将其视为数字,我们可以简单地将该值乘以1。因此,我们的公式变为:
=(LEFT(A1,FIND("-",A1)-1))*1
您可能还会看到人们使用双减号,如下所示:
=--LEFT(A1,FIND("-",A1)-1)
我不推荐这个,因为它有点复杂,但结合上面的公式会给出:
=IF(MEDIAN(B5,--LEFT(B1,FIND("-",B1)-1),--LEFT(C1,FIND("-",C1)-1)-1)=B5,B2,IF(MEDIAN(B5,--LEFT(C1,FIND("-",C1)-1,--LEFT(D1,FIND("-",D1)-1-1)=B5,C2,IF(MEDIAN(B5,--LEFT(D1,FIND("-",D1)-1,--LEFT(E1,FIND("-",E1)-1-1)=B5,D2)))