搜索文本并使用特定公式处理找到的文本。

huangapple go评论101阅读模式
英文:

Search text and use specific formula for text found

问题

我有一个表格如下:

搜索文本并使用特定公式处理找到的文本。

左侧:我要在单元格中查找的文本列表。右侧:根据我找到的文本将要使用的公式。这个公式对于文本提取是必要的(根据我找到的文本不同)。

问题是:我如何在一个单元格中搜索这个文本列表,然后返回要使用的关联公式?

编辑:我要找的内容如下:
搜索文本并使用特定公式处理找到的文本。

如您所见,每一行都有随机文本,我想提取特定内容。由于Excel的限制,我不能使用If..if..if..。

输入:

lrh34gero egepjpj I28595474 erqm567goh

gerlkq $ONE-234556 ethrh3444rzh

zrlthk 4555 njwhv ùpbozj LFO-FIN-25436545

英文:

I have a table like this

搜索文本并使用特定公式处理找到的文本。

On the left : list of text I'm looking for in a cell. On the right : formula I'll use depending on the text I've found. The formula is necessary for a text extraction (which is not the same regarding the text I've found).

The question is : How can I search for this list of text in one cell and then returning the associated formula to use ?

EDIT : What I'm looking for :
搜索文本并使用特定公式处理找到的文本。

As you can see, I have random texts in each lines, and I want to extract specific content. I cannot use If..if..if.. because of the Excel limitation.

Inputs :

lrh34gero egepjpj I28595474 erqm567goh

gerlkq $ONE-234556 ethrh3444rzh

zrlthk 4555 njwhv ùpbozj LFO-FIN-25436545

答案1

得分: 5

以下是翻译好的部分:

这里有一种选择:

搜索文本并使用特定公式处理找到的文本。

单元格 B2 中的公式:

=MAP(A2:A4,LAMBDA(s,LET(x,TEXTSPLIT(s," "),@SORT(XLOOKUP(D2:D6&"*",x,x,"",2),,-1))))

注意:这假设你的列表值始终位于单词(字符串以空格分割)的开头。如果不是这种情况,仍然要进行拆分,但在查找中使用额外的星号:

=MAP(A2:A4,LAMBDA(s,LET(x,TEXTSPLIT(s," "),@SORT(XLOOKUP("*"&D2:D6&"*",x,x,"",2),,-1))))

英文:

Here is one option:

搜索文本并使用特定公式处理找到的文本。

Formula in B2:

=MAP(A2:A4,LAMBDA(s,LET(x,TEXTSPLIT(s," "),@SORT(XLOOKUP(D2:D6&"*",x,x,"",2),,-1))))

Note: This assumes that your listvalues are always at the start of a word (string get's split on space). If not the case, then still split it but use an extra asterisk in your lookup:

=MAP(A2:A4,LAMBDA(s,LET(x,TEXTSPLIT(s," "),@SORT(XLOOKUP("*"&D2:D6&"*",x,x,"",2),,-1))))

答案2

得分: 3

使用嵌套的BYROW()函数与FILTERXML()。尝试-

=BYROW(B3:B4,LAMBDA(z,TEXTJOIN("",1,BYROW(A2:A4,LAMBDA(x,IFERROR(FILTERXML("<t><s>"&SUBSTITUTE(z," ","</s><s>")&"</s></t>","//s[starts-with(., '\" "&x&"\"')]"),""))))))

要了解有关FILTERXML()的详细信息,请阅读JvdV的这篇文章

搜索文本并使用特定公式处理找到的文本。

英文:

Use nested BYROW() function with FILTERXML(). Try-

=BYROW(B3:B4,LAMBDA(z,TEXTJOIN(&quot;&quot;,1,BYROW(A2:A4,LAMBDA(x,IFERROR(FILTERXML(&quot;&lt;t&gt;&lt;s&gt;&quot;&amp;SUBSTITUTE(z,&quot; &quot;,&quot;&lt;/s&gt;&lt;s&gt;&quot;)&amp;&quot;&lt;/s&gt;&lt;/t&gt;&quot;,&quot;//s[starts-with(., &#39;&quot; &amp;x&amp;&quot;&#39;)]&quot;),&quot;&quot;))))))

To know details about FILTERXML() please read this article from JvdV.

搜索文本并使用特定公式处理找到的文本。

huangapple
  • 本文由 发表于 2023年8月10日 16:32:34
  • 转载请务必保留本文链接:https://go.coder-hub.com/76873954.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定