如何在WPS中统计特定字符"9"的出现次数 - 公式详解与应用-WPS高效文档技巧使用方法

如何在WPS中统计特定字符"9"的出现次数 - 公式详解与应用

liusiyang 6 2024-10-12 编辑

提问贴传送门:https://bbs.wps.cn/topic/19594

🔔

原问题是统计一段文本中出现"9"的次数

这时新路老师已经回答了,很完美的回答了。


本帖为新路老师的回答补充两条公式

=SUM(--(ISNUMBER(FIND("9",MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)))))

这个公式使用ROW(INDIRECT("1:" & LEN(A1)))生成一个数组,该数组包含从1到文本A1长度的数字。然后,它使用MID函数提取每个字符,并使用FIND函数查找"9"。ISNUMBER(FIND(...))会返回一个数组,其中找到"9"的位置为TRUE,否则为FALSE。--运算符将TRUE转换为1,将FALSE转换为0,然后SUM函数计算这些1的总和,即"9"的出现次数。

=LET(chars, MID(A1, ROW(INDIRECT("1:" & LEN(A1))), 1),
ninePositions, IFERROR(FIND("9", chars), ""),
countNines, SUM(--(ninePositions <> "")),
countNines)

这个公式里LET函数定义了几个中间变量(chars, ninePositions, countNines),使得公式更易读且更易于维护。ninePositions变量包含了每个字符位置是否包含"9"的信息(如果包含则为位置,否则为空字符串),然后countNines计算非空字符串的数量,即"9"的出现次数。

👋

随后提问者跟着提出了单元格里的数据是"5,9,19,29,39,49“只统计单独的“9”出现的次数,比如"19"、"29"中的9不统计在内,使用的是最新版WPS

既然提问者用的是最新版的WPS,那么这个要求就要换个公式来计数

=SUM(--(TEXTSPLIT(A1,",")="9"))

这个公式的工作原理如下

  1. TEXTSPLIT(A1, ",") 将A1单元格中的文本按逗号分隔成一个数组。

  1. TEXTSPLIT(A1, ",")="9" 检查数组中的每个元素是否等于"9"。

  1. 这将返回一个数组,其中包含TRUE和FALSE值,表示每个元素是否等于"9"。

  1. -- 双负号运算符将TRUE转换为1,将FALSE转换为0。

  1. SUM(...) 将所有1相加,得到单独出现的"9"的总数。


希望以上回答能让提问者满意

原文链接:https://bbs.wps.cn/topic/19601

上一篇: WPS从入门到熟练的快速指南
下一篇: 如何关闭WPS文字左上角的六个点?快速操作指南
相关文章