+ -
当前位置:首页 → 问答吧 → 再问数组数据查询问题

再问数组数据查询问题

时间:2011-08-09

来源:互联网

由于前一贴http://club.excelhome.net/thread-750504-1-1.html举例过于简单,导致未能完整表达真实意图,造成一定的误解,在此再次感谢dsmch及各位的热心帮助。

表1内有科目代码和科目名称共四列,为需要查找数据的区域,表2中第1列为需要查找的值(其中部分单元格有多个科目代码的数值,以“,”分隔),需在表2第2列得到第一列科目代码所对应的表1第3列的科目代码。详见附件。

Vlookup函数的帮助中介绍,查找值可以是数组,但不知怎么个具体用法。

数据量相当大,是用友财务软件引出的凭证,一个月至少有四五百笔凭证,看各位有什么好的方法可以解决不,不用Vlookup,只要能解决问题都行。先行谢过。
dsmch给出的最佳作案如下:
Function aa(x)
Dim arr, i&
x = Replace(x, ",", ",")
arr = Sheets(1).Range("a2:d" & Sheets(1).Range("a65536").End(xlUp).Row)
y = Split(x, ",")
For j = 0 To UBound(y)
    For i = 1 To UBound(arr)
        If y(j) = arr(i, 1) Then p = p & "," & arr(i, 3)
    Next
Next
aa = Mid(p, 2)
End Function

[ 本帖最后由 xinxing0809 于 2011-8-9 12:15 编辑 ]

附件

数组数据查询问题.rar(25.59 KB)

2011-8-9 10:37, 下载次数: 12

作者: xinxing0809   发布时间: 2011-08-09

不知道能不能帮你呢。我做的太复杂了。

附件

数组数据查询问题1.rar(23.26 KB)

2011-8-9 11:03, 下载次数: 11

作者: zhanghuihui2010   发布时间: 2011-08-09

标记黄色的行有什么规律?

作者: hustnzj   发布时间: 2011-08-09

你这个是属于一个字符串拆解并查找对应,用公式的话很是麻烦,还是用VAB吧,你前面的帖子已有,只要修改一下就可用,何必要多发个帖子

作者: cmxxccxx   发布时间: 2011-08-09

数组问题.rar (25.07 KB)
数组问题.rar (25.07 KB)
下载次数: 8
2011-8-9 11:16

作者: dsmch   发布时间: 2011-08-09

前面贴子中的VBA无法解决问题,比如说100220,我想要的结果是返回对应的第3列的100215,而自定义函数因前面有1002,只会找1002替换,而不会找100220替换,而理想的状态是优先找科目代码长的。

附件

数组数据查询问题.rar(51.68 KB)

2011-8-9 12:11, 下载次数: 0

作者: xinxing0809   发布时间: 2011-08-09

相关阅读 更多