我需要计算包含一定文本的列中的单元格数。实际上,我会做多个这些计数,我需要删除重复项。
示例信息:
拉拉
Lerly PTY LTD
Trang AS TTE
Trerek AS TTE
PRING PTY LTD AS TTE
Treps PTY LTD
梁AS TTE
Praderpis PTY LTD AS TTE
我需要计算“AS TTE”显示的次数,以及“PTY LTD”显示的次数。但是,我只想计算一次包含“AS TTE”和“PTY LTD”的单元格。
到目前为止,我有这个:
(COUNTIF(F4:F1000,"*AS TTE*") + COUNTIF(F4:F1000, "*PTY LTD*"))
然而,重复这一点。
编辑:我应该澄清一下,我对此的使用比我列出的要复杂得多,所以它并不像简单地减去另外一个同时具有这两者的COUNTIF那么容易。我还有很多其他的COUNTIF。
答案 0 :(得分:7)
那些拥有“AS TTE”和“PTY LTD”的人是否总是按照“PTY LTD AS TTE”的顺序购买?
如果是,您可以添加:
COUNTIF(F4:F1000,"*PTY LTD AS TTE*")
您的净公式将是:
(COUNTIF(F4:F1000,"*AS TTE*") + COUNTIF(F4:F1000, "*PTY LTD*") - COUNTIF(F4:F1000,"*PTY LTD AS TTE*"))
编辑:如果你不能简单地做另一个COUNTIF
,你可以在你有公式的地方添加列:
=IF(AND(ISERROR(FIND("AS TTE",E4)),ISERROR(FIND("PTY LTD",E4))),0,1)
如果“AS TTE”或“PTY LTD”在单元格F4中,则会插入1
,如果不是,则0
。向下拖动公式并添加列以获得总计。
答案 1 :(得分:0)
您可以在输入数据表中添加三个附加列:
A
1 | Lerly PTY LTD | =COUNTIF(A1,"*PTY LTD*") | =COUNTIF(A1,"*AS TTE*") | =B1+C1-B1*C1
2 | Trang AS TTE | =COUNTIF(A2,"*PTY LTD*") | =COUNTIF(A2,"*AS TTE*") | =B2+C2-B2*C2
...
然后总结第三个附加列,对于符合其中一个条件的每一行,其中都有一个。
答案 2 :(得分:0)
你能添加一列吗?如果可以的话,添加一个(可能是隐藏的)列,比如B,使用类似
的公式=if(and(iserror(find("PTY LTD",A1)),iserror(find("PTY LTD",A1))),0,1)
(假设列A中的数据)然后只对该列求和。该公式显然可以包含任意数量的条件。请注意,我实际上在做的是查找既不包含术语又从省略中省略它们的行。
答案 3 :(得分:0)
根据您需要计算的复杂程度,您可能更好地使用自定义功能,下面的内容可以扩展为测量多个条件,但因为它会计算任何包含“AS TTE”或“ PTY LTD“但将每个细胞计为1:
Public Function CountIfExt(Rng As Range, str1 As String, str2 As String) As Long
Dim c As Range
Dim x As Long
For Each c In Rng
If InStr(c.Value, str1) > 0 Or InStr(c.Value, str2) > 0 Then
x = x + 1
End If
Next c
CountIfExt = x
End Function
将'或'更改为'和'会计算包含两个字符串的单元格,但要检查单元格是否只包含一次,即排除具有'Trang AS TTE PTY LTD AS的单元格然后TTE':(重新阅读你的问题,我不认为这是你所追求的,但要展示你如何扩展这个功能......)
Public Function CountIfExt(Rng As Range, str1 As String, str2 As String) As Long
Dim c As Range
Dim x As Long
Dim lstr1 As Long, lstr2 As Long
For Each c In Rng
lstr1 = InStr(c.Value, str1)
lstr2 = InStr(c.Value, str2)
If lstr1 > 0 And lstr2 > 0 Then
If InStr(lstr1 + 1, c.Value, str1) = 0 _
And InStr(lstr2 + 1, c.Value, str2) = 0 Then
x = x + 1
End If
End If
Next c
CountIfExt = x
End Function
希望这能让你足够到达你需要的地方。