excel公式技巧: 比较字符串中的字符
发布时间:2023-11-19 06:31:17
在单元格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.学习如何通过数组运算比较两组值的大小。


猜你喜欢
- Siri是一款在苹果手机上特别方便好用的智能ai,但是在最新的ios14中很多用户都出现了喊不出来的情况,今天就给你们带来了ios14sir
- 在Win10系统下打开某些应用程序,会弹出一个explorer.exe应用程序错误的提示窗口:“应用程序无法正常启动(0xc0000018)
- 使用下面的代码,你就可以判断WORD内容是否使用了粗体的字形。Dim doc As DocumentDim objWD As Word.Ap
- Win11应用中的几乎所有内容都带来了新的 UI 更改。该列表还包括蓝牙,这项技术可让我们以无线方式共享文件和连接设备。有些用户下载了Win
- 提起Photoshop,相信网友们都不陌生,毕竟不少人都称其为“PS”。不过,对初学者而言,想要通过PS制作出水波纹效果的难度并不低!那么,
- 在Excel中经常需要用到公式把文本转数字的情况,这个功能在Excel中也常用到,下面是由小编分享的excel 用公式把文本转数字的教程,以
- 段落样式是一组诸如字体大小和颜色的属性,确定了段落中文本的外观。您可以在文稿中使用段落样式来。使文稿中不同类型的文本外观一致:例如,将“大标
- 为了方便我们进行软件的管理,win10系统中,我们可以直接在开始菜单中进行相关应用的直接下载。但是,最近有位用户发现在开始菜单中,无法直接卸
- XP系统下Excel查看打印预览提示“尚未安装打印机”怎么办?这是近来不少朋友都向小编咨询的问题。通常情况下,如果计算机没有连接打印机的话,
- Win10以太网属性空白解决方法,有时我们会在网络适配器属性中修改网络DNS和IP,在Win10中本地连接适配器一般被命名为以太网,有时打开
- 2021年7月16日,苹果返校季优惠活动开始了,开搞吧!而很多朋友不了解苹果【返校季】活动和苹果【教育优惠】政策。甚至有人把返校季活动和教育
- Win7最近一次正确配置不管用怎么办?有一些朋友的电脑遇到问题一直无限重启,使用最近一次正确配置都不管用,这到底是什么故障,应该如何解决,今
- 相信大家都知道,在360安全卫士里面有一个加速球功能,它可以在系统占用内存高的时候进行加速清理占用内存的无用程序,帮我们的系统腾出一些内存空
- 当我们在计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx内存不能为read或written”的错误提示当我们在计算机系
- 如何使用ps把图片制作成粗糙蜡笔效果?给大家介绍如何使用ps把图片制作成粗糙蜡笔效果,一起来看看吧。1.打开ps导入素材图片。2.双击背景层
- PDF是文本格式的一种,它的最大特点是无法直接进行编辑,所以我们如果对PDF文件进行编辑的话要么将其转换成可以编辑的格式,要么用编辑工具直接
- 小编在这里教一下大家excel中选择性粘贴快捷键,学会了这个方法后可以大大提高Excel的中工作效率哦。Excel技巧 excel中选择性粘
- Excel中的计算该如何合并计算呢?接下来是小编为大家带来的excel中合并计算的方法,供大家参考。excel中合并计算的方法:合并计算步骤
- Excel是当今社会最流行用的办公软件之一,Excel可以用于数据的整理、分析、对比。可以更直观的看到数据的变化情况,而有些人已经把Exce
- excel表格怎么利用公式实现数据检索?常碰到需要自动检索表格里数据,但VLOOKUP/HLOOKUP/LOOKUP等函数只能进行简单的查找