EXCEL求助,如何从一列中查询到不小于某个值的最大值,并返回行号。

  • f
    flashback
    现在有3个列

    [编号]
    1
    2
    3
    4
    5


    [数值目标]
    18
    36
    77
    100
    120


    [数值源]
    20
    30
    40
    50
    60
    70
    80
    110



    [编号]与[数值目标]行数是一一对应的。

    依次选取[数值源]中的值,去[数值目标]中查询不大于它的最大值,但不返回这个值,而是返回与[数值目标]对应的[编号]。

    [本帖最后由 flashback 于 2013-4-12 10:31 编辑]
  • a
    askysolid
    不用vba,光用excel 语句的话,最简单方法用5个if 来嵌套。
    反正就5个数字而已。
    =if (c1>b5,A5,if(c1>b4,A4,if(c1>b3,a3,if(c1>b2,a2,if(c1>b1,a1,0)))))
    这样如果小于数值目标每一个值,就返回0
  • f
    flashback
    —_—# 5个是示例,其实有很多行...
  • 总是注册不成功
    vba可秒,传统方法等高手解答。
  • f
    flashback
    帮忙秒一个~~~
  • w
    westlost
    a1到a5,b1到b5,c1到c8依次为3列内容,d1单元格公式=match(c1,$b$1:$b$5,1),其他d列拖动
  • a
    askysolid
    ok .那就用match 函数把。
    =match (c1,B:B,1)

    [本帖最后由 askysolid 于 2013-4-12 10:46 编辑]
  • 总是注册不成功
    请付0.03个比特币
  • t
    tetie
    我编辑掉~~~- -

    [本帖最后由 tetie 于 2013-4-12 10:47 编辑]
  • 上海狗狗
    vba...其他无解
  • z
    zjw7th
    =LOOKUP(1,0/(B$1:B$5<=C1),A$1:A$5)
    前提是[数值目标]需要升序排列,不知能否满足?
  • f
    flashback
    多谢各位,确实可以用match函数搞定!