我想在Excel中找到并将文本复制到下一列。我有A栏,带有文字或句子。我想找到一个特定的单词并将该单词复制到下一列B列中,只要该单词在A列的文本中可用。
我有单字搜索和复制的解决方案,但我想将其应用于多个搜索和复制不同的单词:
=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".
我想搜索单词"Processes and procedure"
,并且应该在B列(单元格1)中复制“只有processes
或procedure
在文本中。
你能帮帮我吗?
答案 0 :(得分:1)
如果您只需要返回其中一个单词,则可以使用:
=LOOKUP(2,1/ISNUMBER(SEARCH({"Processes","Procedures"},A4)),{"Processes","Procedures"})
或者,您可以将搜索词放入单元格中:
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的数组!查找值为2的LOOKUP将找到一个等于或小于2的数字的最后位置;并从result_vector返回相同位置的项目。
如果您需要返回两个单词,并且它们可以位于不同的单元格中,请输入此数组公式,并填写右侧的搜索列表中的单词数:
e.g:
=IFERROR(INDEX(IF(SEARCH($C$1:$D$1,$A4),$C$1:$D$1,""),1,COLUMNS($A:A)),"")
输入后,array-enter 一个公式 公式进入单元格或公式栏,按住 ctrl-shift ,同时点击输入。如果你这样做了 正确地说,Excel会在公式周围放置大括号 {...} 。
编辑: 添加了屏幕截图
答案 1 :(得分:0)
我通常会说不要将值硬编码到公式中。应该按照您的要求返回的公式如下。将公式放入 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 列的字符串中找到,如果是这种情况,它将检查字符串"进程和过程"发生(在你的例子中它没有!)如果它发生了,它将返回"过程和程序"
回到我原来的观点,我建议将"process"
放入单元格 C1 ,"procedure"
放入单元格 D1 和{{1} }进入单元格 E1 ,公式将如下所示:
"processes and procedure"
通过这种方式,您可以修改 C,D和E 列,您的公式将重新计算
在单元格 A1
中使用=IF(OR(NOT(ISERR(FIND(C1,LOWER($A1)))),NOT(ISERR(FIND(D1,LOWER($A1))))), IF(NOT(ISERR(FIND(E1,LOWER($A1)))),E1,""),"")
等值测试这些公式
更新:根据我的示例,这就是您的设置应该是什么样的。
更新:由于您无法看到图片,因此请务必确保设置列 A,C,D& E 如下,然后将公式粘贴到 B
列中"Execution of processes and procedures"