You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中行内D、P单独及连续组出现次数统计公式求助

Excel统计D/P连续段次数的公式实现

核心逻辑

统计每行中单独出现的D/P、连续的D/P组合的总次数,本质是把所有非D/P的字符作为分隔符,统计分割后非空片段的总数。

公式方案

方案1:适用于Excel 365/2021(动态数组版本)

假设目标数据在A列,在B2单元格输入以下公式后下拉填充:

=COUNTA(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2,"D","|"),"P","|")&"</s></t>","//s[normalize-space()]"))

原理:

  1. 用两次SUBSTITUTE把所有D和P替换为统一分隔符|,将原字符串拆分为以非D/P字符分隔的片段
  2. 通过FILTERXML提取所有非空的片段
  3. 用COUNTA统计非空片段的数量,即为符合规则的次数

方案2:适用于所有Excel版本(兼容旧版)

在B2单元格输入以下数组公式(输入后按Ctrl+Shift+Enter确认,Excel 365可直接回车):

=SUMPRODUCT(--(MID("X"&A2,ROW(INDIRECT("1:"&LEN(A2)+1)),1)<>"D")*(MID("X"&A2,ROW(INDIRECT("2:"&LEN(A2)+2)),1)="D") + --(MID("X"&A2,ROW(INDIRECT("1:"&LEN(A2)+1)),1)<>"P")*(MID("X"&A2,ROW(INDIRECT("2:"&LEN(A2)+2)),1)="P"))

原理:

  1. 在原字符串前加非D/P字符X,避免开头就是D/P的情况漏统计
  2. 逐字符对比相邻位置,统计从非D/P字符切换到D/P字符的次数,这个次数就是连续段的总数量

示例验证

输入字符串统计结果说明
AADDPXPPY2DDPP是一段,PP是一段
D1单个D计1次
PXD2单独的P和单独的D各计1次
XYZZ0无D/P出现

内容的提问来源于stack exchange,提问作者user3471438

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:35:29