如果单元格值包含列表中的值(通配符匹配),则从特定列中检索数据

If cell value contains value from list (wildcard match), retrieve data from a specific column

我正在使用 Google Sheets 并且有两个 sheets,Sheet1 和 Sheet2。我想查看 Sheet1 中的某个单元格是否包含 Sheet2 中 A 列的值。匹配应通过通配符 *value* 完成。如果匹配,则应检索 B 列 (Sheet 2) 中的相应值。

Sheet2 看起来像这样: 两列,A 列是我要搜索的,B 列是我要搜索的 return如果有比赛。

| Search               | Return        |
|:---------------------|:--------------|
| dog                  | Dog           |
| hound                | Dog           |
| juice                | Beverage      |
| cola                 | Beverage      |

Sheet1 看起来像这样,A 列包含不同事物的名称,B 列包含一个 google 表格公式。

| Name                 | Type          |
|:---------------------|:--------------|
| Coca-Cola            | {formula}     |
| Nuka-Cola            | {formula}     |
| Slurp Juice          | {formula}     |
| Dog                  | {formula}     |
| Cola Juice           | {formula}     |
| Doggo                | {formula}     |
| Doge                 | {formula}     |
| American Foxhound    | {formula}     |
| Mountain Dog         | {formula}     |
| The Hound            | {formula}     |

Sheet1 最后应该是这样的,见 B 列。

| Name                 | Type          |
|:---------------------|:--------------|
| Coca-Cola            | Beverage      |
| Nuka-Cola            | Beverage      |
| Slurp Juice          | Beverage      |
| Dog                  | Dog           |
| Cola Juice           | Beverage      |
| Doggo                | Dog           |
| Doge                 | Dog           |
| American Foxhound    | Dog           |
| Mountain Dog         | Dog           |
| The Hound            | Dog           |

这远远超出了我的 google sheet 公式技能。现在我在 Sheet1 中有以下公式,它以前做过类似的事情 - 但现在根本不起作用: =LOOKUP(2^15;SEARCH(Sheet2!A:A;*A2*);Sheet2!B:B.

如果可能的话,我不想为此使用绝对引用,因为我不知道 Sheet2 有多长。

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(IFNA(REGEXEXTRACT(LOWER(D2:D),
 LOWER(TEXTJOIN("|", 1, SORT(A2:A, 1, 0))))), A2:B, 2, 0)))