MS EXCEL:使用列范围内的通配符从字符串中搜索和提取文本

MS EXCEL:使用列范围内的通配符从字符串中搜索和提取文本,excel,substring,extract,Excel,Substring,Extract,从字符串中删除或提取日期-在范围列中使用通配符 使用MS Excel数组公式,我想要一个公式,该公式允许我在单元格a中的文本字符串中搜索,并仅提取与列范围中唯一通配符模式匹配的匹配子字符串文本:$D$2:$D$10 或者任何可以帮助我在使用列范围时从字符串中提取匹配日期或从字符串中删除匹配日期的公式 A栏(正文) C列(输出结果) D列(范围查找内容) 我为您提供了一个部分解决方案,我也想知道是否可以不使用正则表达式或自定义函数完全回答您的问题 使用通配符查找部分匹配项、它们在列表中的相对位置以

从字符串中删除或提取日期-在范围列中使用通配符

使用MS Excel数组公式,我想要一个公式,该公式允许我在单元格a中的文本字符串中搜索,并仅提取与列范围中唯一通配符模式匹配的匹配子字符串文本:$D$2:$D$10

或者任何可以帮助我在使用列范围时从字符串中提取匹配日期或从字符串中删除匹配日期的公式

A栏(正文)

C列(输出结果)

D列(范围查找内容)


我为您提供了一个部分解决方案,我也想知道是否可以不使用正则表达式或自定义函数完全回答您的问题

使用通配符查找部分匹配项、它们在列表中的相对位置以及它们的起始位置非常简单,仅在本网站上就已经被介绍了几十次

我自己无法解决的一个问题是用通配符删除匹配的文本,因为很明显,它可能具有不同的长度。如果通配符只替换单个字符(?),这很简单,根据我下面的公式,您自己做这件事应该没有问题。不幸的是,当使用*通配符时,我不知道如何解决这个问题

我不知道有什么解决办法,我很想自学

找到的字符串:

=索引(列表,最大值)(如果(iError(搜索(列表,$A2)),-1,1)*(行(列表)-行($A$7)+1))

找到的行数:

=MAX(如果(iError(搜索(列表,A2)),-1,1)*行(列表))

找到的位置:


=聚合(14,6,搜索(列表,A2),1)

你为什么大喊大叫?这很烦人。我很抱歉,谢谢你提醒我。。。我重新键入了更微妙的内容。您能告诉我们您到目前为止尝试了什么吗?我尝试了几个公式。我尝试了几个公式:我使用索引、匹配和搜索公式能够找到并返回字符串中标识的文本模式的对应值=IFERROR(索引($D$2:$D$25,匹配(TRUE,ISNUMBER(搜索($D$2:$D$25,A2)),0))和“”)Michal谢谢,提供的公式确实有效,需要稍加调整,但你肯定在正确的轨道上,我需要什么。再次感谢你
A2: Sally was employed from January 2016 - August 2018 and now works at home
A3: April 2013 through January 2014 was a good year
A4: Here are dates they worked for us 01/2011 til 09/2013
C2: Sally was employed from and now works at home
C3: was good
C4: Here's when they worked 
D2: * 20?? through * 20??
D3:  ??/20?? til ??/20??
D4: * ???? - * ???? 
D5: * 2017 - Present
D6: * 20?? - * 20??
D7: * 20?? * 20??