如何解决如何在Excel的搜索功能中迭代更改in_text值
我正在使用excel搜索功能:SEARCH(find_text,within_text,[start_num])
- 我的find_text是工作表2中的城市列,范围为A2:A29488
- 我的inside_text是wooksheet1(运行我的公式的工作表)的C列中的电子邮件地址。
- 我没有使用start_num参数。
这是我的功能:=SEARCH('Sheet2'!A2:A29488,C62)
它可以工作并返回电子邮件地址内城市首字母的索引 例如:... @ denver.edu = 5
我的问题是SEARCH函数不仅输出索引5,还输出整个#VALUE!列,该列代表不在电子邮件地址中的城市。这意味着我无法将公式应用于C列中的每个电子邮件地址。
因此,现在我必须在列中运行公式,并找到数字输出值。 Search Formula output
这不会有问题。问题是我一次只能搜索一个电子邮件地址。因此,我将不得不对C列中的每一行运行我的函数。是否有一种方法可以让in_text参数迭代地增加,直到我的函数在C列中的每一行上运行?即:SEARCH('Sheet2'!A2:A29488,C62)..SEARCH('Sheet2'!A2:A29488,C63)....SEARCH('Sheet2'!A2:A29488,C6280)
解决方法
您的“整个列#VALUE!”是一个SPILL范围,On Error GoTo Errorhandler 'i put this before loop
For x = 2 to lastrow
'main code
Continue: 'this would allow error handler to jump to next loop
next x
Exit sub 'script will not read errorhandler after finishing loop
Errorhanlder:
error handled
Err.clear 'not sure if this is necessary but i put it.
Resume Continue 'This will lead to next x
范围内每个单元的结果。这是Excel 365的功能。
您可以使用其他Excel 365功能将其简化为单个结果
find_text
仅当只有1个匹配项时,这将返回单个结果。如果可能有> 1个匹配项,则此版本将返回第一个匹配项
=LET(List,IFERROR(SEARCH('Sheet2'!A2:A29488,C62),0),FILTER(List,List>0))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。