专栏首页完美ExcelExcel公式练习92:统计两个字符串共有的唯一字符数

Excel公式练习92:统计两个字符串共有的唯一字符数

引言:本文的练习整理自chandoo.org。多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。

本次的练习是:给定两个字符串,计算这两个字符串中共有的唯一字符数。这两个字符串可能包含任意数量的字符,例如字母、数字、符号等,每个字符串的长度不固定。

公式中不得使用任何辅助单元格、名称等。不区分大小写,即大写字母与小写字母没有区别,“A”和“a”等价,每个字符串中的字符可以按任意顺序出现。

示例数据如下图1所示。

图1

上图1中,字符串“Ridiculous”和“Simple”具有共同的字母“s”、“i”和“l”。因此,返回的值应为3。

写下你的公式。

解决方案

公式1:

在单元格C2中输入数组公式:

=COUNT(MATCH(ROW(INDIRECT("1:"&LEN(A2))),SEARCH(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1),A2),0))

向下拖放复制到数据末尾。

公式中:

MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1)

将单元格B2中的字符串拆分成单个字符组成的数组:

{"S";"i";"m";"p";"l";"e"}

然后,SEARCH函数在单元格A2中搜索这些字符:

SEARCH({"S";"i";"m";"p";"l";"e"},A2)

返回由字符位置组成的数组:

{10;2;#VALUE!;#VALUE!;7;#VALUE!}

公式中:

ROW(INDIRECT("1:"&LEN(A2)))

返回从1至单元格A2字符长度的连续数字组成的数组:

{1;2;3;4;5;6;7;8;9;10}

这样,MATCH函数变为:

MATCH({1;2;3;4;5;6;7;8;9;10},{10;2;#VALUE!;#VALUE!;7;#VALUE!},0)

返回数组:

{#N/A;2;#N/A;#N/A;#N/A;#N/A;5;#N/A;#N/A;1}

传递给COUNT函数:

COUNT({#N/A;2;#N/A;#N/A;#N/A;#N/A;5;#N/A;#N/A;1})

统计数组中数字的数量:

3

即为两个字符串共有的唯一字符数。

公式2:

在单元格C2中输入数组公式:

=SUM(--(FREQUENCY(IFERROR(SEARCH(MID(A2,ROW(OFFSET(A1,,,LEN(A2))),1),B2),FALSE),ROW(OFFSET(A1,,,LEN(B2))))>0))

向下拖放复制到数据末尾。

公式3:

在单元格C2中输入数组公式:

=SUM(IF(FREQUENCY(CODE(MID(UPPER(A2),ROW(INDIRECT("1:" & LEN(A2))), 1)), ROW(64:90)) *MID(0&REPT(1, 26) & 0, ROW(1:28), 1), 1))

向下拖放复制到数据末尾。

有兴趣的朋友可以参照公式1仔细理解体会公式2和公式3。

本文分享自微信公众号 - 完美Excel(excelperfect),作者:fanjy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel公式练习86:找出字符串中最大的数字

    本次的练习是:从一个由文本和数字组成的文本字符串中,提取出连续最长的数字。如下图1所示,在单元格B2中包含一个由文本和数字组成的字符串,很显然,其最长数字是93...

    fanjy
  • Excel公式练习40: 从单元格区域的字符串中提取唯一值

    导语:继续研究来自于excelxor.com的案例。坚持到现在的,应该都有感觉了!

    fanjy
  • Excel公式练习87:返回字符串中第一块数字之后的所有内容

    本次的练习是:如下图1所示,使用公式拆分列A中的字符串,从中返回列B中的字符串。例如,如果字符串是Monaco7190Australia1484,那么返回第一块...

    fanjy
  • Excel公式练习88:返回字符串中第一块数字之后的所有内容(续1)

    引言:在《Excel公式练习87:返回字符串中第一块数字之后的所有内容》中,我们给出了解决这个问题的一个公式,本文中,尝试着使用另一个公式来解决这个问题。尝试多...

    fanjy
  • Excel公式练习89:返回字符串中第一块数字之后的所有内容(续2)

    引言:在《Excel公式练习87:返回字符串中第一块数字之后的所有内容》和《Excel公式练习88:返回字符串中第一块数字之后的所有内容(续1)》中,我们分别给...

    fanjy
  • Excel公式练习90:返回字符串中第一块数字之后的所有内容(续3)

    引言:在《Excel公式练习87:返回字符串中第一块数字之后的所有内容》、《Excel公式练习88:返回字符串中第一块数字之后的所有内容(续1)》和《Excel...

    fanjy
  • Excel公式练习39: 求字符串中的数字组成的数能够被指定数整除的数的个数

    导语:继续研究来自于excelxor.com的案例。这个案例比较复杂,需要仔细研究。

    fanjy
  • Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字

    在很多情况下,我们都面临着需要确定字符串中第一个和最后一个数字的位置的问题,这可能是为了提取包围在这两个边界内的子字符串。然而,通常的公式都是针对所需提取的子字...

    fanjy
  • 简单的Excel VBA编程问题解答——完美Excel第183周小结

    下面是2020年11月12日发布的一些简单的ExcelVBA问题的答案,是不是和你想的一样。

    fanjy
  • Excel公式练习35: 拆分连字符分隔的数字并放置在同一列中

    导语:这个案例仍来自于excelxor.com,没有办法,太有才了,不得不佩服这些人,竟然能把Excel公式与函数玩成这个样子!认真研究这些案例,一定能够有效地...

    fanjy
  • 初识Pandas

    江湖上流传着这么一句话——分析不识潘大师(PANDAS),纵是老手也枉然。 Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我...

    py3study
  • 一文带你快速入门Python | 初识Pandas

    这是Python数据分析实战基础的第一篇内容,主要是和Pandas来个简单的邂逅。已经熟练掌握Pandas的同学,可以加快手速滑动浏览或者直接略过本文。

    CDA数据分析师
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    不可言诉的深渊
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    double
  • 盘点互联网公司最常见的面试编程题

    互联网公司面试,笔试环节或第一面往往都是现场做编程题。很多面试的老铁反映说,败在了编程题上,去不了自己心仪的公司,拿不到想要的待遇。

    石晓文
  • 精通Excel数组公式019:FREQUENCY函数的威力

    在数据库中,表的第一列通常是称作为主键或唯一标识符的唯一值列表,用于验证为每个唯一标识符收集的数据是否位于一个且只有一个位置。在唯一值列表中没有重复值。

    fanjy
  • Python数据分析实战基础 | 初识Pandas

    这段时间和一些做数据分析的同学闲聊,我发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,然后不约而同的一...

    数据森麟
  • Python数据分析实战基础 | 初识Pandas

    这段时间和一些做数据分析的同学闲聊,我发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,然后不约而同的一...

    Python数据科学
  • Python数据分析实战基础 | 初识Pandas

    这段时间和一些做数据分析的同学闲聊,我发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,然后不约而同的一...

    小小詹同学

扫码关注云+社区

领取腾讯云代金券