检查文本列 A 中的字符串,return 列 B 中的另一个字符串 - Excel

Check for string in text column A, return another string in column B - Excel

我正在尝试查找 A 列中的 3 个字符串(蓝色、红色、绿色)之一。在 A 列中我有:

row1: "Robert has Blue shorts"

row2: "Maria has a Red dress"

row3: "John has a Green car"

每当我在 A 列中找到这 3 个词之一时,我想用找到的实例(绿色、红色、蓝色)填充 B 列。

A 列中总是有这 3 个词之一,永远不会超过一个,并且词的位置可以在字符串中的任何位置。

我知道如何将其放入 Python 或 SQL,但我在 Excel 中苦苦挣扎。

谁能分享一下以前用过的解决方案?

您可以使用这个数组公式:

=INDEX({"Red","Blue","Green"},MATCH(TRUE,ISNUMBER(SEARCH({" Red "," Blue "," Green "}," " & A1 & " ")),0))

作为数组公式,退出编辑模式时必须用Ctrl-Shift-Enter确认。如果正确完成,那么 Excel 将在公式周围放置 {}

注意事项:

您还可以将 {"Red","Blue","Green"} 替换为范围参考。因此,如果这三个词在 D1:D3 中,则公式为:

=INDEX($D:$D,MATCH(TRUE,ISNUMBER(SEARCH(" " & $D:$D & " "," " & A1 & " ")),0))