Excel:将文本作为字符串而不是正则表达式读取

时间:2017-11-03 08:29:05

标签: excel

我对excel有些新意,现在正在制作一张只计算产品销售数量的工作表。

我正在使用公式:

=COUNTIFS('salesreport'!$A$1:$A$1048576,'SalesNumbers'!$A1)

salesreport工作表包含A列中包含产品名称的数据,SalesNumbers工作表包含A列中的产品名称列表和第二列中提到的公式。

现在问题,一些产品有不同的变体和名称结尾的* “产品A *”,“产品A大*”。 由于*被Excel解释为以下任何文本,因此“产品A *”的计数器将包含大型变体。

由于我从外部收到数据,因此很难简单地删除*,以便将来的报告复制/粘贴到模板中。

解决问题的简单方法显然是减去大变量的数量。我遇到的问题是,对于所有产品,公式不再一致,如果我旁边的人会在模板上工作,可能会导致问题。

有没有办法让Excel将A列中的名称作为字符串而不是正则表达式读取?

提前谢谢!

Ascani0

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您可以使用:

=SUMPRODUCT(--(salesreport!$A:$A=SalesNumbers!$A1))

编辑2 SUMPRODUCT是功能强大且非常实用的ARRAY公式,可以找到很多用法。在这里,我们使用它来做特定的COUNTIF之类的东西。

  • salesreport!$ A:$ A = SalesNumbers!$ A1 部分测试平等

  • 它生成的布尔ARRAY为{TRUE,FALSE,TRUE .... FALSE}

  • 此结果无法直接传递给需要数字数据的SUMPRODUCT。因此,为了实现数字强制,我们应用双一元( - ),这也可以通过使用+0或* 1等方法来实现。

编辑如果您想使用COUNTIFS,那么您可以像下面一样使用它:

=COUNTIFS(salesreport!$A:$A,SUBSTITUTE(SalesNumbers!$A1,"*","~*"))

这里代字号(〜)用作转义字符,并允许在字面意义上检查星号(*)。