excel公式比较字符串中的字符
发布时间:2023-11-09 07:04:25
在单元格A2中给定一个字符串值,仅由大写字母组成且字符长度至少为2。在单元格B2中输入公式:如果A2中字符串的各个字符按字母升序排列(从左到右),则返回TRUE;否则返回FALSE。如图1所示。
图1
先不看答案,自已动手试一试。
公式
在单元格B2中的公式为:
=AND(GESTEP(MMULT(CODE(MID(A2,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1))+{0,1},1)),{-1;1}),0))
向下拖拉即可。
公式解析
首先,让我们看一下公式中的用于生成要传递给MID函数的参数的数组的结构:
ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1))
该构造与下面的标准结构返回相同的数组:
ROW(INDIRECT(“1:”&LEN(A2)-1))
两者比较,后者更具有易失性。
如果单元格A2中的字符串为“AABBCCCC”,很显然有8个字符,可以得到:
ROW(INDEX(A:A,1):INDEX(A:A,7))
转换为:
ROW(A1:A7)
得到:
{1;2;3;4;5;6;7}
现在,大多数解决方案在这里所做的就是首先将此数组传递给MID函数作为其参数start_num的值:
MID(A2,{1;2;3;4;5;6;7},1)
转换为:
{“A”;”A”;”B”;”B”;”C”;”C”;”C”}
然后,使用下面的数组执行类似运算:
{2;3;4;5;6;7;8}
代入MID函数:
MID(A2,{2;3;4;5;6;7;8},1)
转换为:
{“A”;”B”;”B”;”C”;”C”;”C”;”C”}
最后,对这两个数组进行比较。没错!这是针对本问题的一种合理的解决方案。
实际上我们可以一步生成这两个数组,而不是用这种方式生成两个单独的数组。只需要确保能够对所得到的单个数组执行我们所需的比较。这里的技术是,将数组:
{1;2;3;4;5;6;7}
与下面的数组相加:
{0,1}
注意,该数组必须与前面的数组正交。由于第一个是单列数组,因此需要确保第二个是单行数组。因此:
{1;2;3;4;5;6;7}+{0,1}
由第二个数组中的两个值与第一个数组中的每个值相加,得到:
{1,2;2,3;3,4;4,5;5,6;6,7;7,8}
此时,公式转换为:
=AND(GESTEP(MMULT(CODE(MID(A2,{1,2;2,3;3,4;4,5;5,6;6,7;7,8},1)),{-1;1}),0))
先看这部分:
MID(A2,{1,2;2,3;3,4;4,5;5,6;6,7;7,8},1)
转换为:
{“A”,”A”;”A”,”B”;”B”,”B”;”B”,”C”;”C”,”C”;”C”,”C”;”C”,”C”}
可以看到,包含与先前两个独立数组完全相同的元素,尽管它们组合成一个7行2列的数组。
现在,获取每个字符的ASCⅡ编码:
CODE({“A”,”A”;”A”,”B”;”B”,”B”;”B”,”C”;”C”,”C”;”C”,”C”;”C”,”C”})
得到:
{65,65;65,66;66,66;66,67;67,67;67,67;67,67}
现在必须确保可以相应地操纵上述数组,将每行中的两个元素彼此相减。仍然使用矩阵运算,很容易解决:
MMULT({65,65;65,66;66,66;66,67;67,67;67,67;67,67},{-1;1})
结果为:
{0;1;0;1;0;0;0}
这类似于在两个单独的数组之间进行比较:
{“A”;”A”;”B”;”B”;”C”;”C”;”C”}<{“A”;”B”;”B”;”C”;”C”;”C”;”C”}
然后将得到的TRUE/FALSE值转换成等价的数值。
最后,简单地查询该数组的哪个元素大于或等于0(这实际上意味着一个元素的ASCII码与上一个元素的ASCII码之差大于或等于0,即等效于前面的字符等于或小于后面的字符):
=AND(GESTEP({0;1;0;1;0;0;0},0))
转换为:
=AND({1;1;1;1;1;1;1})
结果为:
TRUE
小结
1.学习Excel怎么处理两个正交且元素数量不同的数组的运算。
2.学习如何通过数组运算比较两组值的大小。


猜你喜欢
- 做电商的小伙伴们,会经常需要对当前的数据与历史数据进行对比,得出差异,分析趋势,或者从各个方面、各个渠道细化剖析数据。本篇讲的便是以原始的订
- 很多小伙伴都会在电脑上时不时使用录屏软件,但是有时候也会不想开启却还是打开了,那么他的开关在什么地方呢?下面就给大家带来详细的开关位置详情。
- Super Photo Cut Out可以自动裁剪透明物体和婚纱,完美去除复杂的图像背景,在数秒内切割出市场上其他工具无法实现的透明物体、婚
- 当您比较抵押贷款的付款方式时,您的选择可能会很压倒……在圣艾夫斯时,我找到了家,然后
- 如何恢复丢失的原始图像文件?别急,今天小编给大家使用Magoshare Data RecoveryMac版恢复丢失的原始图像文件的教程,操作
- 案例:假设有两个小组,每个小组各有6个人,这两个小组的名单位于两个单独的列中(图1)。我们要在这两个小组中随机挑出选手,需要在另一个新的列中
- 局域网的出现,让企业在工作的沟通上迈进了一大步。每个人可以将大家需要用到的文件共享进局域网里供大家使用,大大提高了工作效率。但是我们对这些文
- 本篇内容主要会向大家介绍word图文混排的设计和制作,设计是需要灵感的,制作要的是细心,大家做图文混排可以先学习下这篇教程。先来看一下做好的
- 一、准备的基础知识1、创建多个选项下拉菜单在EXCEL单元格做下拉列表还有一个更好的方法,因为下拉列表的内容可能有30项甚至于100项以上,
- 在wps演示中,可以制作各种各样的艺术效果,例如我们可以在wps演示中制作波浪文字的效果,下面就让小编告诉大家在wps演示中怎样制作波浪文字
- windows7系统文件夹视图怎么修改的和xp一样,这个问题大家如果想解决的话可以通过以下教程进行操作,希望对大家有所帮助首先我们随便打开一
- 我们在文档中使用MathType编辑大量公式,使用格式刷之后公式会上靠,使文档看起来不美观,这时我们就要采取一些办法来解决,以下步骤教您如何
- 举行一项活动,从别处拿来一ppt课件,放映时老是从某一页开始,而不是从第一页开始,怎么办?ppt放映时为什么不从第一页开始起初遇到这个问题,
- 在公式中,当引用使用空格交叉两个无交叉区域的单元格区域时,返回 #NULL! 错误。 解决方法检查引用区域,确保两个区域有交叉区域
- 有些朋友觉得自己家网速慢可能是被蹭网了,想要修改自家的wifi密码,但是不知道怎么操作,也许以前是工作人员弄的,现在自己想要改密码应该怎么做
- 如果要自定义设置快捷键,可按如下方法:小编这里以增加“所有框线”的快捷键为例:1、打开“工具--自定义--命令”,在类别中选“格式”,在命令
- 很多安装 AdGuard 的 macOS Monterey 用户发现,AIrDrop 会经常失效。虽然重启后短时间有效,但是很快在 AdGu
- 最近有用户在进行Win11电脑的蓝牙设备连接时,却总是找不到蓝牙图标的存在,对此Win11系统没有蓝牙图标怎么办呢?今天小编就来教大家Win
- 当我们的电脑遇到问题的时候,可能会需要用到远程协助,又或者当我们需要远程操作我们的电脑的时候,这个时候就需要开启远程桌面连接。那么该如何开启
- 内置的IE浏览器也奋力地升级到IE11版本,使用大家熟悉的QQ空间时,即使安装完需要的控件后,仍然会遇到上传图片时无法正常上传的问题,针对这