以文本方式查看主题

-  易表在线答疑  (http://www.egrid2000.com/dvbbs/index.asp)
--  精华分享  (http://www.egrid2000.com/dvbbs/list.asp?boardid=12)
----  如何判断一字符串在另一字符串出现的次数(YBIL原创)  (http://www.egrid2000.com/dvbbs/dispbbs.asp?boardid=12&id=1007)

--  作者:喜爱易表
--  发布时间:2006/8/16 19:16:00
--  如何判断一字符串在另一字符串出现的次数(YBIL原创)
[操作技巧]如何判断一字符串在另一字符串出现的次数

(本技巧原创人:YBIL)

  有时用户会需要判断某列的内容在另一列出现的次数,其实,我们利用Len函数和Substitute函数就可以实现;

  请看下面的例子:
egd文件下载
公式解析:

  表中[次数列]设置了这样的刷新公式:(Len([A])-Len(Substitute([A],[b],"")))/Len([b]),在解析这个公式之前,我们应该先了解Len函数和Substitute函数的功能:

  Len函数:返回字符串的长度;
  Substitute函数:在文本字符串中以新字符替换旧字符;

  我们一步步分解上面的公式:
  ● Len([A]):返回当前行[A]中的字符串的长度;
  (注释:假设[A]列内容为:aasdfggrwwqefgfh,那么这部分的公式的结果为“16”。)
  ● Substitute([A],[b],""):将[A]列中的字符串内出现的[b]列的内容用空白代替;
  (注释:其实,可以理解为相当于删除了[A]列中包含的[B]列的内容;比如:[A]列内容为:aasdfggrwwqefgfh,[B]列内容为:f,那么这部分公式的结果为“aasdggrwwqegh”,大家注意看一下,实际上相当于删除了f。)
  ● Len(Substitute([A],[b],"")):返回删除了[A]里中字符串包含的[b]列的内容后的字符串的长度;
  (注释:假设[A]、[B]列内容分别为:aasdfggrwwqefgfh、f,那么这部分的公式的结果为“13”。)
  ● Len([b]):返回当前行[b]中的字符串的长度;
  (注释:假设[B]列内容为:f,那么这部分的公式的结果为“1”。)

  ¤ 综合一下上面的公式,实际上就是:(16-13)/1=3;
  ¤ 之所以要除以Len([b])就是考虑到[b]列不为单个字母的情况,比如演示文件中的第二行;