excel - MS Excel:使用列范围列表查找字符串中特定文本的首次出现
问题描述
使用 MS Excel 公式查找并提取在关键字列范围内找到的特定单词的第一个(第一个)实例/出现。
在单元格 A2 中,我有一个包含以下内容的子字符串:
凯伦出生于俄亥俄州阿克伦市,在阿拉巴马州莫比尔上大学,然后在父母退休后不久搬到佐治亚州亚特兰大,现在住在北卡罗来纳州罗利。
列 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)),"")
-和-
=IFERROR(INDEX($B$2:$B$10,MATCH(TRUE,ISNUMBER(SEARCH"*"&$B$2:$B$10&"*",A2)),0)),"")
两个结果均返回:Mobile、AL
预期成绩:
正确结果 = 俄亥俄州阿克伦
注意:虽然有四种可能的匹配结果,但它会匹配并检索/提取 Akron, OH,因为它从右到左搜索并找到关键字位置。
解决方案
两个结果均返回:Mobile、AL
您尝试的两个数组公式实际上都为我返回了乔治亚州亚特兰大。
从右到左查找关键字位置。
你的意思是从左到右?
这实际上是一个相当普遍的问题。您需要找到字符串中子字符串的所有匹配搜索位置的 MIN,然后使用它来查找列表中子字符串的索引。
=INDEX(B2:B10, AGGREGATE(15, 7, ROW(1:9)/(SEARCH(B2:B10, A2)=AGGREGATE(15, 7, SEARCH(B2:B10, A2), 1)), 1))
推荐阅读
- gcc - 是否有标准顺序来链接 GCC 命令行中的几个库
- vbscript - 编辑文件夹中的每个文件
- node.js - npm:如何从 package.json 全局安装所有依赖项?
- azure - Azure Active Directory 添加分配按钮灰显
- java - 通过 Java Android 撰写电子邮件 - 尝试以设备管理客户端为目标
- autohotkey - AHK - 如何创建与网站按钮交互的脚本
- android - 使用来自 GeoServer 的自定义 Tiles 在 Android 应用程序中使用 google-maps sdk
- hyperledger-fabric - 如何在 Hyperledger Fabric 中获取 LeveDB 中的下一个序列键
- vba - PowerPoint幻灯片逃脱vba
- python - 如何获取一维 numpy 数组并将其转换为具有特定名称的 DF