Excel:读取文本而不是正则expression式
我对excel有点新,现在正在制作一个简单计算产品销售数量的工作表。
我正在使用公式:
=COUNTIFS('salesreport'!$A$1:$A$1048576,'SalesNumbers'!$A1)
salesreport表单包含A列中的产品名称数据,SalesNumbers表单包含A列中的产品名称列表和第二列中提到的公式。
现在到了这个问题,一些产品有不同的变种,并且名字上有一个*,例如“Product A *”,“Product A large *”。 由于*被Excel解释为以下任何文本,因此“产品A *”的计数器将包含较大的变体。
由于我从外面收到的数据很难简单的去除*,以便将来的报告只是复制/粘贴到模板中。
解决这个问题的简单方法显然是减去大variables的数量。 我所遇到的问题是,公式对于所有产品都不再一致,如果旁边的某个人在模板上工作,可能会导致问题。
有没有办法让Excel读取A列中的名称而不是正则expression式的string?
先谢谢你!
Ascani0
如果我正确理解这一点,那么你可以使用:
=SUMPRODUCT(--(salesreport!$A:$A=SalesNumbers!$A1))
编辑2 SUMPRODUCT是强大和非常有用的ARRAY公式,它发现了很多用法。 这里我们用它来做特定的COUNTIF类似的东西。
-
salesreport!$ A:$ A = SalesNumbers!$ A1部分testing相等
-
它生成布尔值arrays{TRUE,FALSE,TRUE …. FALSE}
-
这个结果不能直接传递给期望数字数据的SUMPRODUCT。 所以为了实现数字强制,我们应用双重一元( – ),也可以用+0或* 1等方法实现。
编辑如果你想使用COUNTIFS,那么你可以像下面一样使用它:
=COUNTIFS(salesreport!$A:$A,SUBSTITUTE(SalesNumbers!$A1,"*","~*"))
这里代字符(〜)做转义字符的工作,并允许在字面意义上检查星号(*)。