Excel 2013,如何使用 vlookup 等“搜索”功能
Posted
技术标签:
【中文标题】Excel 2013,如何使用 vlookup 等“搜索”功能【英文标题】:Excel 2013, how to us the "search" function like vlookup 【发布时间】:2014-12-29 19:28:50 【问题描述】:本质上,我正在寻找一种使用“搜索”功能的方法,例如“vlookup”功能。就我而言,我有一个很长的清单,比如说,1000 种不同类型的紧固件的描述,我想根据它们是什么来对它们进行分类(即螺母、螺栓、垫圈等)。但是,我不能按描述或零件编号进行排序,因为它们按字母数字排列并没有按类别排列。但他的描述字段确实在其中的某个点上说明了它是什么(即螺母、螺栓、垫圈等)。 如前所述,我有一个类表,我正在寻找一个公式,该公式将在“描述”字段中查找表中所有值,然后返回该值或与之关联的值(如 vlookup 与单元格值)。 因此,如果它在描述中找到“nut”,它将返回“nut”,或者如果它找到“bolt”,它将返回“bolt”。
我希望这个问题有意义。我还要说,我找到了一种使用搜索功能“手动”执行此操作的方法,以及其他方法,但是公式很长,并且必须特别调用表中的每个值。但是,我将包含我用来说明我想要做什么的公式。 见下文。
=IF(ISNUMBER(SEARCH($G$2,C3)),$G$2,IF(ISNUMBER(SEARCH($G$3,C3)),$G$3,IF(ISNUMBER(SEARCH($G$4,C3)),$G$4,IF(ISNUMBER(SEARCH($G$5,C3)),$G$5,...IF(ISNUMBER(SEARCH($G$13,C3)),$G$13,"MISC"))))))))))))
您会看到,对于您添加到表中的每个项目,您都必须添加另一个 if
循环。我希望有更好的方法。 (我称之为“vsearch”:-))
【问题讨论】:
【参考方案1】:试试这个公式
=IFERROR(LOOKUP(2^15,SEARCH($G$3:$G$13,C3),$G$3:$G$13),"MISC")
SEARCH
根据是否在 C3 中找到每个术语,返回一个数字或错误数组。通过搜索找不到的“bignum”(在本例中为 2^15
),匹配始终与 last 数字,即 G3:G13 中的最后一个匹配项。
【讨论】:
【参考方案2】:MATCH
可用于查找文本,INDEX
可用于返回文本
使用您在G
中搜索的示例:
=MATCH("*"&C3&"*",$G:$G,0)
然后索引返回文本
=INDEX($G:$G,MATCH("*"&C3&"*",$G:$G,0))
作为画龙点睛的一笔,#VALUE! 替代品
=IFERROR(INDEX($G:$G,MATCH("*"&C3&"*",$G:$G,0)),"MISC")
【讨论】:
如果 C3 是 col G 值之一的“子字符串”,则此方法有效.....但我认为情况正好相反。 C3 包含可能包含 G3:G13 中的一个(或多个?)子字符串的描述 - 我的答案适用于这种情况 @barryhoudini,你是对的 - 我总是把这些搞混(我似乎也总是用MATCH
处理)以上是关于Excel 2013,如何使用 vlookup 等“搜索”功能的主要内容,如果未能解决你的问题,请参考以下文章
如何在 R 中进行 vlookup 和填写(如在 Excel 中)?
vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表