抱歉又来问小白的问题。VLOOKUP这个函数只能对应一排,不能对应区域?

  • d
    death5343
    我目前想要实现一个功能,但是失败了。查找了INDEX之类的发现也不对。
    材料1 材料2 材料3
    订单1 A B C
    订单2 A C F

    以上是基础数据
    希望能用VLOOKUP后
    材料 生产对像1 对象2 对象3
    A 订单1 订单2 N/A
    B 订单1 N/A N/A
    C 订单1 订单2 N/A
    F 订单2 N/A N/A

    问题是对比好像只能对比一竖列,不能对比一个区域,然后返回我想要的值。

    是我的想法不对么?
  • Q
    QQ254035447
    VLOOKUP只能匹配列里的数据
    你要达到你想要的表2的方法可以使用数据透视表来实现
  • d
    death5343
    这个常用表,不是总结表。随时填数据的,不可能用透视表来实现。
  • 爱骑车的胖子
    透视表可以刷新的
  • v
    vany
    excel用的不够好,但我知道肯定不是用vlookup。
    vlookup函数的col index num只能是匹配数据后的同一行的某列数据,你所要求的完全不是这么回事,所以放弃vlookup吧。
  • d
    death5343
    没用的,透视表只能弄数值,不可能弄文本的。
  • h
    handsomeken
    我觉得楼主不如弄个简单的excel上传然后说说要求……
  • d
    death5343
    好像不支持上传啊。

    只能传个图。
  • 华莱士
    常用excel的话
    楼主花点时间学学vba吧
    光用函数是不够的
  • 哇呀呀
    这个东西我最近正好做过,实在不想动vba,用了几个函数搞定了
    首先申明,这个办法挺sb的,求更简单的解决方案

    首先,需要函数 MATCH 来查找A在材料1列中的位置,返回2(在这个例子中,下同);有个格子记录这个2;另有个格子记录2+1=3
    然后需要函数 INDIRECT 将3读出来用在第二个MATCH 中,让match从材料1列的第3个数字开始找起,返回1;1+2=3(这个3和上面那个2就是在材料1列中有A的行数);
    然后index这几个行数,就能得到“订单1”和“订单2”
  • d
    death5343
    MATCH和INDEX我都试了,没头绪,能直接复制一个公式和图表给我么。
  • h
    handsomeken
    因为不清楚这个数据表最终会有多大以及你需要的效果和功能,就大概写了个给你参考下。如果你的数据量和查找的东西比较固定而且就这几个的话,稍微改改就能用。
    不过还是建议弄弄数组啥的,这样结构更清晰,也不会有太多没用的中间变量。

    [本帖最后由 handsomeken 于 2015-3-25 17:50 编辑]