excel 如何在一个单元格的一句话中,搜索多个关键字,如符合,则返回指定列的数据?

例子如下:

sheet1
A列 B列
我叫什么名字 (Bl列写公式,我希望显示“莫再提”)
我现在几岁 (Bl列写公式,我希望显示“莫再问”)

sheet2
A列 B列 C列 D列
叫 什 名 莫再提
我 几 岁 莫再问

需要用公式实现……宏接触太少,怕看不懂……
还有一个关键是 sheet2 中的 A1:C2 中,每行的几个字要完全匹配到才算达到期望。。。其中一个或两个匹配到了都不能符合要求。。。
之前有提问过一个高手,但由于我的理解错误,最终问题关闭了,但没得到我真正想要的,实在是郁闷,再次提问……
我现在用的公式是:
=IF(ISERROR(IF(ISERROR(IF(AND(FIND($G$2,A1),FIND($H$2,A1),FIND($I$2,A1)),$K$2,"")),IF(AND(FIND($G$3,A1),FIND($H$3,A1),FIND($I$3,A1)),$K$3,""),IF(AND(FIND($G$2,A1),FIND($H$2,A1),FIND($I$2,A1)),$K$2,""))),IF(AND(FIND($G$4,A1),FIND($H$4,A1),FIND($I$4,A1)),$K$4,""),IF(ISERROR(IF(AND(FIND($G$2,A1),FIND($H$2,A1),FIND($I$2,A1)),$K$2,"")),IF(AND(FIND($G$3,A1),FIND($H$3,A1),FIND($I$3,A1)),$K$3,""),IF(AND(FIND($G$2,A1),FIND($H$2,A1),FIND($I$2,A1)),$K$2,"")))
呵呵,算是比较粗糙地解决了眼下的问题,嵌套比较累,后来我用辅助列的方式减少了头晕的次数……另外还是发现了几个问题,一是我用的是2003,IFERROR写进去没效果,纠结半天才发现是2007版本以后的函数;二是如果A1中同时包含了G1:I2的字,就会出错……貌似这个问题无解。

前面那位同志说的合并就简单了
=IF(AND(FIND("叫",A1),FIND("什",A1),FIND("名",A1)),"莫再提","")&IF(AND(FIND("我",A1),FIND("几",A1),FIND("岁",A1)),"莫再问","")

但是这个公式不认识顺序,例如“名什叫”也会判定为真。
所以正确的做法应该是:
=IF(COUNTIF(A1,"*叫*么*名*"),"莫再提",IF(COUNTIF(A1,"*我*几*岁*"),"莫再问",""))
则顺序什么的都可以判断了追问

先谢谢你喔~
你说的这个合并我复制进表里貌似出错了,不能这么“&”的吧。。。
=IF(AND(FIND("叫",A1),FIND("什",A1),FIND("名",A1)),"莫再提","")&IF(AND(FIND("我",A1),FIND("几",A1),FIND("岁",A1)),"莫再问","")

可以判定顺序的那个公式是可以,但如果我有100行不同的A1内容,和100个不同的D列答案内容该怎么办呢……

追答

&用来连接公式是没有问题的
问题1:你自己的规则,如果这两个条件同时满足的时候应显示什么?直接连接会两个都显示。
问题2:find函数的用法,直接这么写,如果搜不到关键字就会显示错误。不想显示错误增加个iferror的处理就可以了。

如果你有A1:A100的数据需要判断,直接将公式向下用句柄填充就可以了。简单的说就是把公式直接往下拖就可以了。

追问

A列 B列
我叫什么名字 (Bl列写公式,我希望显示“莫再提”)
我现在几岁 (Bl列写公式,我希望显示“莫再问”)
我现在在哪里 (Bl列写公式,我希望显示“莫再问”)

G列 H列 I列 K列
叫 什 名 莫再提
我 几 岁 莫再问
我 哪 (空) 你猜

经过一个朋友的提点,我现在用 FIND 和 ISERROR 搞定了,但这个办法很笨,呵呵
A列问题部分能够随意换,G到K列的匹配字和答案如果多了的话,就很麻烦,不知道有没有更好的办法呢?

追答

如果按你说的这个格式,用countif就比较麻烦了
毕竟解决的简单的问题的公式自然简单漂亮
如果你的问题这么复杂,那自然要多些几个if来嵌套
既然你有一定的基础
我可以给你思路
用find函数,在A1里找出第一次出现的第一个字的位置
用find函数,A1从那个字符后面开始数,第二个字的位置,利用好参数就可以了
同理找到第三个字的位置
如果整个过程都没报错,就显示你要显示要显示的,这里用iferror()或者iserror()都行
实际一步一步写起来不会难的
加油
搞定可以告诉我一下,让我也高兴一下

追问

由于有字数限制,只好搞个图片进去了,嘿嘿。。。谢谢你的指教!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
...这个我之前给你回答过啊...多看看别人意见也是好的追问

呵呵,是啊,你给的答案给了我些启发,只是可惜对我现有的问题还是无法解决……,不知道高手还有其他办法没吖?