【问题标题】:Check if cell contains strings in a list检查单元格是否包含列表中的字符串
【发布时间】:2021-10-10 10:12:18
【问题描述】:

我有一张 Excel 表格,里面有很多我想要分类的不同条目(费用)。为此,我创建了另一张表,其中包含不同的条目类别,例如杂货、夜店等,并将每个条目放在一个列中。

这是我的费用表:

Description Value Category
Card - Foetex purchase on 3/10 350 ?
Card - Mikkeller purchase on 3/10 350 ?

这将是类别表:

Groceries Night out
Foetex Mikkeler
Irma To Oel

我想要做的是在费用表第 3 列的类别表(杂货和夜间活动)上定义类别。因此,类别表中的内容将是费用表描述列中文本的子字符串。因此,例如,如果描述中有“Foetex”,那么类别应该是杂货。

我尝试过 Match、countif 等,但无济于事。

有人知道解决办法吗?

【问题讨论】:

  • 你用的是什么版本的excel?
  • 2008 (Office 365)

标签: excel excel-formula array-formulas


【解决方案1】:

对于这个答案,我做了以下假设:

  • 工作表被命名为“费用”和“类别”,并且位于同一个工作簿中
  • 以上两个表都以Cell A1开头

工作表“费用”Cell C2(您的“类别”列)中的公式应为:

=CONCATENATE(IF(COUNTIF(A2, "*" & Categories!A$2:B$3 & "*")>0, Categories!A$1:B$1, "")) 然后按 ctrl+enter 将其应用为数组公式。

如果您的类别范围更长或更宽,请将 Categories!A$1:B$3 替换为您的类别范围,但请确保第二个范围 Categories!A$1:B$1 保持在第一行。

当您将公式复制到类别列的其余部分时,请记住使用absolute references 保存范围更改。

【讨论】:

  • 感谢优雅的解决方案。所有假设都是正确的,但是我得到了#SPILL!错误。这是公式在适应实际工作表时的样子: =CONCATENATE(IF(COUNTIF(G5, "" & Categories!A$2:R$20 & "")>0, Categories!A $1:R$1, ""))
  • 输入 ctrl + shift + enter 有效:) 谢谢!
猜你喜欢
  • 2018-04-21
  • 2017-11-20
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
相关资源
最近更新 更多