查找单词并复制到Excel中的下一列
我想find并将文本复制到Excel中的下一列。 我有专栏A,有文字或句子。 我想查找一个特定的单词,并将该单词复制到列B的下一列中,只有该单词在列A的文本中可用。
我有这个解决scheme单字search和复制,但我想申请这个多个search和复制不同的单词:
=IF(ISNUMBER(SEARCH("processes", A4)), MID(A4, SEARCH("processes", A4), 9), "")
例:
假设列A包含这样的文本:
"Execution of procedure and processes". "All Procedures are correctly updated" "Processes are going smoothly".
我想search单词作为"Processes and procedure"
并应该复制到B列(单元格1)“只有”如果任何processes
或procedure
在文本中。
你能帮我解决吗?
如果您只需要返回其中一个单词,则可以使用:
=LOOKUP(2,1/ISNUMBER(SEARCH({"Processes","Procedures"},A4)),{"Processes","Procedures"})
或者,您可以将search词放入单元格中:
C1: Processes D1: Procedures =LOOKUP(2,1/ISNUMBER(SEARCH($C$1:$D$1,A4)),$C$1:$D$1)
如果没有任何字,公式将返回错误; 它可以扩展到任何数量的单词。 如果你不喜欢简单的错误信息,你可以将上述内容包装在一个IFERROR函数中,并返回你喜欢的东西。
具有find_text数组的SEARCH函数将返回数字或#VALUE!的数组。 ISNUMBER函数将返回一个TRUE或FALSE的数组。 除法操作(1 / ISNUMBER)将返回1或#DIV / 0的数组! lookup_value为2的LOOKUP将查找等于或小于2的数字的最后一个位置; 并从result_vector中返回相同位置的项目。
如果您需要返回两个单词,并且它们可以位于不同的单元格中,请input此数组公式,并填写search列表中单词的数量:
例如:
=IFERROR(INDEX(IF(SEARCH($C$1:$D$1,$A4),$C$1:$D$1,""),1,COLUMNS($A:A)),"")
要数组input公式,在将公式input到单元格或公式栏后,按住Ctrl键并按Enter键 。 如果你这样做是正确的,Excel将把括号{…}放在公式的周围。
编辑: 添加屏幕截图
我通常会说不要硬编码值到你的公式。 下面是一个应该返回的公式。 将公式放入B1并向下拖动。
=IF(OR(NOT(ISERR(FIND("processes",LOWER($A1)))),NOT(ISERR(FIND("procedure",LOWER($A1))))), IF(NOT(ISERR(FIND("processes and procedure",LOWER($A1)))),"processes and procedure",""),"")
这个公式检查是否可以在列A的string中find“进程”或“过程”,如果是这样的话,它将检查string“进程和过程”是否发生(它不在你的例子!)如果确实如此,则会返回“stream程和程序”
回到我原来的观点,我build议把"process"
放入单元格C1 ,将"procedure"
放入单元格D1 ,将"processes and procedure"
放入单元格E1中 ,公式如下所示:
=IF(OR(NOT(ISERR(FIND(C1,LOWER($A1)))),NOT(ISERR(FIND(D1,LOWER($A1))))), IF(NOT(ISERR(FIND(E1,LOWER($A1)))),E1,""),"")
这样你可以编辑C,D和E列,你的公式将重新计算
在单元格A1中使用诸如"Execution of processes and procedures"
的值来testing这些公式
更新:这是你的设置应该看起来像我的例子。
更新:因为你看不到图像,本质上确保你设置列A,C,D和E如下,然后将公式粘贴到列B
ACDE Execution of processes and procedures processes procedures processes and procedures Execution of procedures and processes processes procedures processes and procedures