使用MS Excel公式查找并提取在“关键字”的列范围内找到的特定单词的第一个(第一个)实例/出现。
在单元格A2中,我有一个包含以下内容的子字符串:
卡伦(Karen)出生于俄亥俄州阿克伦(Akron),在阿拉巴马州莫比尔(Mobile)上大学,然后在父母退休后不久移居佐治亚州亚特兰大。
B2:B10列(列列表中的城市和州关键字列表)
Tulsa, OK
New York, NY
Boise, ID
Atlanta, GA
Baltimore, MD
Raleigh, NC
Pittsburgh, PA
Akron, OH
Mobile, AL
我尝试使用以下公式,但是没有成功。
=IFERROR(INDEX($B$2:$B$10,MATCH(TRUE,COUNTIF(A2,"*"&$B$2:$B$10&"*")>0,0)),"")
-AND-
=IFERROR(INDEX($B$2:$B$10,MATCH(TRUE,ISNUMBER(SEARCH"*"&$B$2:$B$10&"*",A2)),0)),"")
返回的两个结果:移动,AL
预期结果:
正确的结果=俄亥俄州阿克伦城
注意:尽管有四个可能的匹配结果,但它会在搜索和查找从右到左的关键字位置时匹配并检索/提取俄亥俄州的阿克伦。
答案 0 :(得分:1)
返回的两个结果:移动设备,AL
您尝试的两个数组公式实际上都为我返回了乔治亚州亚特兰大。
从右到左查找关键字位置。
您是说从左到右吗?
这实际上是一个相当普遍的问题。您需要找到字符串中子字符串的所有匹配SEARCH位置的MIN,然后使用它来查找列表中子字符串的索引。
=INDEX(B2:B10, AGGREGATE(15, 7, ROW(1:9)/(SEARCH(B2:B10, A2)=AGGREGATE(15, 7, SEARCH(B2:B10, A2), 1)), 1))