Excel 通过列表在单元格中查找多个文本字符串并返回等效值

Excel 通过列表在单元格中查找多个文本字符串并返回等效值

因此,我遇到了一个问题,即通过列表在单元格中搜索一些字符串。例如:

第 1 页:

    A                                     B     C
   ---                                   ---   ---
1 | Cash in deposit (Branch A t/t)
2 | Borrowed from Corp. A
3 | Interest payment
4 | Int.panalty pmt
5 | Prin. Pmt
6 | Salary Pmt on April
7 | Sales abroad
8 | Branch C t/t
9 | Transferred from Company AA
10| Mortgages to DD ltd
11| Sal. Pmt on May

在 B1 单元格中输入如下公式:

=IF(COUNT(SEARCH({"branch","corp.","company"},A1))>0,"Precol.",IF(COUNT(SEARCH({"interest","int.","prin."},A1))>0,"lo.",IF(COUNT(SEARCH("sales",A1))>0,"Sa.",IF(COUNT(SEARCH({"sal.","Salary","wage","payroll"},A1))>0,"Se.","Others"))))

公式太长,括号太多,如果我有一个很长的列表需要排序,这就不好了。

那么,您能帮我缩短或者创建比它更有效的另一个公式吗?

答案1

如果有很多参数,我的旧公式就会很长。

最后,我使用查找函数来解决我的问题,如下所示:

IFERROR(LOOKUP(2^5,SEARCH(关键字,A1),键字符串),"其他")

其中: - 关键字包括 Branch、corp、company ... 和 sales - 关键字符串包括 Precol.、Lo.、Se.、Sa.

但我仍然不满足,除了它们之外我还想有其他的解决方案。

答案2

哦,我刚刚找到了一个新的解决方案,像这样:如果我将“branch, corp., company ... and sales”的范围命名为 keyword;将“Precol., Lo., Se., Sa.”的范围命名为 keystring。我的公式将是 =IFERROR(INDEX(keystring,MATCH(TRUE,ISNUMBER(SEARCH(keyword,A1)),0)),"Others") 和 Ctrl-shift-enter。我将得到类似的结果。

相关内容