如何计算字符串在单元格区域中出现的次数

时间:2020-07-18 16:24:20

标签: excel excel-formula

 <br>1<br>text <br>2<br>text <br>3<br>
 <br>4<br>
 <br>5<br>text <br>6<br>text <br>7<br>text <br>8<br>

计算 <br>*<br>在此表A1:A3中出现的次数的公式是什么?请记住,每个单元格的前面都有一个空格。

总数应为8。=COUNTIF(A1:A3," <br>*<br>")仅返回3。

编辑:简化了数据,使其更易于阅读

3 个答案:

答案 0 :(得分:1)

此Microsoft文档链接可以帮助您尝试实现的多种变体-https://docs.microsoft.com/en-us/office/troubleshoot/excel/formulas-to-count-occurrences-in-excel

要计算子字符串在一系列单元格中的出现次数,可以使用以下方法:

SUM(LEN(range)-LEN(SUBSTITUTE(range,"text","")))/LEN("text")

如果以上方法都不适合您,请尝试以下操作:

enter image description here

数字:

enter image description here

要计算一个单元格中子字符串的出现,可以结合使用excel中的公式来解决问题。

简短答案(只需将您特定的文本或单元格引用插入其中)

=(LEN("original_text")-LEN(SUBSTITUTE("original_text","text_to_count","")))/LEN("text_to_count")

如果您有兴趣,请回答:

  1. SUBSTITUTE(x,y,z)-接收原始文本(x)和要查找的文本(y),然后用z替换x中所有出现的y并返回字符串。您的情况(为简洁起见,我选择了一个较小的字符串):

=SUBSTITUTE("123331<br>asdsdas <br>","<br>","")

这将用原始字符串123331asdsdas中的空字符串替换所有
出现的

  1. LEN(x)-简单地返回x的长度。就您而言:

=LEN(SUBSTITUTE("123331<br>asdsdas <br>","<br>",""))

这将返回14,即123331asdsdas的长度。

  1. =LEN("123331<br>asdsdas <br>")为您提供22。

  2. =LEN("123331<br>asdsdas <br>") - LEN(SUBSTITUTE("123331<br>asdsdas <br>","<br>","")),它从原始字符串的长度中减去替换字符串的长度,为您提供8。

  3. (LEN("123331<br>asdsdas <br>") - LEN(SUBSTITUTE("123331<br>asdsdas <br>","<br>","")))/LEN("<br>")将上述答案从减法中除以原始字符串的长度,得到 2

这是一个单元格中
发生的次数。

  1. 简而言之,我们做了(length_of_original_string - length_of_substituted_string)/length_of_string_to_find,在您的情况下,它翻译为(22-14)/4 = 2

答案 1 :(得分:1)

这似乎是XML / HTML,所以为什么不使用FILTERXML结构通过XPATH对其进行解析,以对 包含一个空格, 为空。例如,您的数据位于A1中:

=COUNTA(FILTERXML("<t><br>"&SUBSTITUTE(CONCAT(A1:A3),"<br>","</br><br>")&"</br></t>","//br[not(contains(., ' '))][node()]"))

或者当您的有效数据可以容纳空格时,我们将需要过滤掉以空格结尾的内容(然后又是空的):

=COUNTA(FILTERXML("<t><br>"&SUBSTITUTE(CONCAT(A1:A3),"<br>","</br><br>")&"</br></t>","//br[not(substring(., string-length(.), 1)=' ')][node()]"))

但是,如果您要查找的是仅要计数的数字节点,请使用:

=COUNT(FILTERXML("<t><br>"&SUBSTITUTE(CONCAT(A1:A3),"<br>","</br><br>")&"</br></t>","//br[.*0=0]"))

最棒的是FILTERXML实际上会返回一个数组以进行进一步的分析,在这种情况下,您可以计算数组中的元素。

答案 2 :(得分:1)

或者,

在B1中输入公式:

=SUMPRODUCT(LEN(A1:A3)-LEN(SUBSTITUTE(A1:A3," ","")))

enter image description here

相关问题