所以我有以下内容:
=SUM(LEN(Data!$J$2:$J$9999)-LEN(SUBSTITUTE(Data!$J$2:$J$9999,"dependent","")))/LEN("dependent")
给定范围j2:j9999将计算字符串相关的出现次数,而不管其余的单元格 - 即,如果单元格包含primary,依赖,而另一个依赖,则计数将为2。
我需要什么,不能真正弄清楚上面给出了如何引用行中的另一个单元格。因此,如果我仍然需要计算字符串相关的出现次数,那么如果发现字符串相关的情况以及与依赖于== foo的单元格在同一行中的另一个单元格,我将如何限制仅计算出现次数。< / p>
实施例
column1, column2, column3
foo, bar, dependent
bar, baz, dependent
foo, bar, primary dependent dependent1
在这个例子中,我想做一个伪countifs,其中我计算字符串依赖的出现,因为该行也匹配foo。
此处的计数为3,因为第1行在cell1中具有foo且具有依赖性,第3行在第1列中具有foo,在第3列中具有2次依赖
答案 0 :(得分:1)
不需要数组输入的版本:
=SUMPRODUCT((Data!$H$2:$H$9999="foo")*(LEN(Data!$J$2:$J$9999)-LEN(SUBSTITUTE(Data!$J$2:$J$9999,"dependent",""))))/LEN("dependent")
或者,如果&#34;依赖&#34;只会在每个单元格中出现一次,您可以使用:
=COUNTIFS(Data!$H$2:$H$9999,"foo",Data!$J$2:$J$9999,"*dependent*")
答案 1 :(得分:0)
这应该可行。它基于您的示例数据完成,并返回D1中的值:
Sub StringCounter_II_The_Sequel()
Dim range1 As Range, rCell As Range
Dim string1 As String
Dim length As Long, i As Long
string1 = "dependent"
length = Len(string1)
Set range1 = ActiveSheet.Range("C:C")
For Each rCell In range1
txt = rCell.Text
If InStr(txt, string1) > 0 And rCell.Offset(,-2) = "foo" Then
i = i + (Len(txt) - Len(Replace(txt, string1, ""))) / length
End If
Next rCell
ActiveSheet.Range("D1").Value = i
End Sub
答案 2 :(得分:0)
您可以在公式中添加IF
,如下所示:
=SUM(IF(Data!H2:H9999="foo",LEN(Data!$J$2:$J$9999)-LEN(SUBSTITUTE(Data!$J$2:$J$9999,"dependent","")))/LEN("dependent"),0)
显然,它仍然是一个数组公式,用 ctrl 输入 - shift - 输入