excel - 如何计算字符串出现在单元格区域中的次数
问题描述
<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。
编辑:使数据更简单,因此更易于阅读
解决方案
这看起来像 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
实际上会返回一个数组以供进一步分析,在您的情况下,您可以计算数组中的元素。
推荐阅读
- laravel - Laravel Echo 获取听众
- mongodb - 如何使用 NumberDecimal()
- mysql - 自定义字符的 LIKE 函数
- php - Codeigniter 查询生成器子查询问题
- javascript - 使用正则表达式替换 Angular 模板中字符串中的字符
- c# - 如何在 C# 中将一副纸牌添加到数组中
- javascript - 让 div 跟踪页面滚动?
- flutter - Flutter 服务器端事件,反应式 UI
- c# - SonarScanner for MsBuild 是否尊重 web.config?
- css - 如何访问在 Vue + Buefy 的作用域样式块中创建的 CSS 变量