K****n 发帖数: 2485 | 1 想实现这么一个功能:
在指定区域内以2~3个keyword查找一个单元格,此单元格内容为text,要求它同时含有
上述2~3个keyword。然后返回此单元格所在那一行的后面第n列内容。
我看了match、lookup和vlookup,好像都没法实现。
请问有没有好办法?多谢! :) |
S********t 发帖数: 18987 | 2 与其在EXCEL里限制自己,
不如整个倒进临时表或数组,
处理完了,再整个导出为新的EXCEL表,并HIGHLIGHT找到的单元格 |
l*********s 发帖数: 2261 | 3 vlookup应该可以吧?要不试试分两步走,先挑出一个来,再在其中挑第二个key word
。 |
K****n 发帖数: 2485 | 4 那样好像更复杂吧,我就是想从一堆原始数据里,找出我想要的内容,自动填进我自己
做的表里去。其实也没多复杂,就是不知道该用什么样的函数或函数组合。
【在 S********t 的大作中提到】 : 与其在EXCEL里限制自己, : 不如整个倒进临时表或数组, : 处理完了,再整个导出为新的EXCEL表,并HIGHLIGHT找到的单元格
|
K****n 发帖数: 2485 | 5 vlookup能嵌套么?用第一个vlookup找出符合keyword 1的结果,再在此结果范围内查
找符合keyword 2的结果。。。?数据库里是可以这样做,但excel好像不行吧?
word
【在 l*********s 的大作中提到】 : vlookup应该可以吧?要不试试分两步走,先挑出一个来,再在其中挑第二个key word : 。
|
M*********e 发帖数: 3153 | 6 如果是和ACCESS 连用,我有办法
单纯用EXCEL,不懂
【在 K****n 的大作中提到】 : 想实现这么一个功能: : 在指定区域内以2~3个keyword查找一个单元格,此单元格内容为text,要求它同时含有 : 上述2~3个keyword。然后返回此单元格所在那一行的后面第n列内容。 : 我看了match、lookup和vlookup,好像都没法实现。 : 请问有没有好办法?多谢! :)
|
s***y 发帖数: 7034 | 7 写个宏还简单些
【在 K****n 的大作中提到】 : vlookup能嵌套么?用第一个vlookup找出符合keyword 1的结果,再在此结果范围内查 : 找符合keyword 2的结果。。。?数据库里是可以这样做,但excel好像不行吧? : : word
|
K****n 发帖数: 2485 | 8 找到办法了,原来vlookup查询的字符串可以用*或者?来间隔
如果同时查询三个keyword,且它们的顺序固定,那就可以用
vlookup("*keyword1*keyword2*keyword3*",range,colum_number,0)这样的函数来实现
。查询字符串如果前面或后面还有其他内容,则两头要多加*号。
现在一个新问题是,如果需要查询的内容不只在一个单元格内,比如要求第一个单元格
内含有keyword 1和2,同行第三个单元格内含有keyword3,返回满足此条件的那一行的
第n列内容。这样怎么实现? |
K****n 发帖数: 2485 | 9 呵呵,access应该能实现,不过我现在还没学到那里呢,先争取用简单的方法解决吧
:)
【在 M*********e 的大作中提到】 : 如果是和ACCESS 连用,我有办法 : 单纯用EXCEL,不懂
|
S********t 发帖数: 18987 | 10 用三个带条件的循环套一起
然后历遍所有的rows和cells
最后满足全部三个条件的就停在那个cells(row,n)
【在 K****n 的大作中提到】 : 找到办法了,原来vlookup查询的字符串可以用*或者?来间隔 : 如果同时查询三个keyword,且它们的顺序固定,那就可以用 : vlookup("*keyword1*keyword2*keyword3*",range,colum_number,0)这样的函数来实现 : 。查询字符串如果前面或后面还有其他内容,则两头要多加*号。 : 现在一个新问题是,如果需要查询的内容不只在一个单元格内,比如要求第一个单元格 : 内含有keyword 1和2,同行第三个单元格内含有keyword3,返回满足此条件的那一行的 : 第n列内容。这样怎么实现?
|
|
|
l*********s 发帖数: 2261 | 11 分两步走啊。不过就是多加一列而已。既然是用电脑,为什么老想一步就做成呢?费大
脑筋把所有的步骤都写到一个function里,还不如化繁为简多写几个简单函数,又不会
多占多少资源。
【在 K****n 的大作中提到】 : 找到办法了,原来vlookup查询的字符串可以用*或者?来间隔 : 如果同时查询三个keyword,且它们的顺序固定,那就可以用 : vlookup("*keyword1*keyword2*keyword3*",range,colum_number,0)这样的函数来实现 : 。查询字符串如果前面或后面还有其他内容,则两头要多加*号。 : 现在一个新问题是,如果需要查询的内容不只在一个单元格内,比如要求第一个单元格 : 内含有keyword 1和2,同行第三个单元格内含有keyword3,返回满足此条件的那一行的 : 第n列内容。这样怎么实现?
|
b*******3 发帖数: 1461 | 12 让我想起过去上学的时候和EE的一个哥们讨论关于内存使用问题,我救一个劲的在考虑
怎么程序上最优化内存使用,那个EE的哥们说,double机器内存不就得了。。。
【在 l*********s 的大作中提到】 : 分两步走啊。不过就是多加一列而已。既然是用电脑,为什么老想一步就做成呢?费大 : 脑筋把所有的步骤都写到一个function里,还不如化繁为简多写几个简单函数,又不会 : 多占多少资源。
|
K****n 发帖数: 2485 | 13 思路确实是这样,但怎样用函数实现?选择用什么函数组合?
【在 S********t 的大作中提到】 : 用三个带条件的循环套一起 : 然后历遍所有的rows和cells : 最后满足全部三个条件的就停在那个cells(row,n)
|
K****n 发帖数: 2485 | 14 刚学编程算法的人大概都像你这样,以后慢慢就疲了,就跟微软一样,程序越做越大,
资源占用越来越高,效率越来越低,哈哈
【在 b*******3 的大作中提到】 : 让我想起过去上学的时候和EE的一个哥们讨论关于内存使用问题,我救一个劲的在考虑 : 怎么程序上最优化内存使用,那个EE的哥们说,double机器内存不就得了。。。
|
K****n 发帖数: 2485 | 15 如果是从一大堆原始数据中只查询一两个结果,用这种多个中间步骤的办法还行
如果要查询几百上千个结果,那就不行咯 :P
【在 l*********s 的大作中提到】 : 分两步走啊。不过就是多加一列而已。既然是用电脑,为什么老想一步就做成呢?费大 : 脑筋把所有的步骤都写到一个function里,还不如化繁为简多写几个简单函数,又不会 : 多占多少资源。
|
S********t 发帖数: 18987 | 16 第一个循环就历遍每一行的某列里LOOKUP第一个关键字啊
找到就在这一行里LOOKUP 第二个第三个关键字
不符合就再换下一行
你查单个关键字该用什么函数就用什么,你用的编程语言总有可以处理字串的
【在 K****n 的大作中提到】 : 思路确实是这样,但怎样用函数实现?选择用什么函数组合?
|
t******g 发帖数: 17520 | 17 可以不可以 把 cell 里的内容分割, 然后直接用filter 来? |
l*********s 发帖数: 2261 | 18 那是EXCEL本身的局限了。数据多一点是比较慢。不过你说的情况多加一列并不会拖慢
多少。
【在 K****n 的大作中提到】 : 如果是从一大堆原始数据中只查询一两个结果,用这种多个中间步骤的办法还行 : 如果要查询几百上千个结果,那就不行咯 :P
|
t******g 发帖数: 17520 | 19 or sorting
【在 t******g 的大作中提到】 : 可以不可以 把 cell 里的内容分割, 然后直接用filter 来?
|
t******g 发帖数: 17520 | |
T******e 发帖数: 18290 | 21 两种思路都有道理,最后都要看值不值得
【在 b*******3 的大作中提到】 : 让我想起过去上学的时候和EE的一个哥们讨论关于内存使用问题,我救一个劲的在考虑 : 怎么程序上最优化内存使用,那个EE的哥们说,double机器内存不就得了。。。
|
K****n 发帖数: 2485 | 22 这倒是个很特别的办法,估计能行,虽然有点啰嗦,呵呵
如果能用嵌套函数的方法实现就最好了,即容易操作,又能一劳永逸
【在 t******g 的大作中提到】 : 可以不可以 把 cell 里的内容分割, 然后直接用filter 来?
|