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.学习如何通过数组运算比较两组值的大小。
猜你喜欢
- 1、Microsoft OfficeMS Office是微软开发的办公系列软件,因其与Windows兼容优势、易用性、功能强大等优势,获得了
- Word快速插入时间日期。在Word中,有两个快捷键能够直接生成当前日期和时间。方法一:运用快捷键Alt+Shift+D,可以在Word上添
- Word2010/2096.html'>地址块是Word2010中内置的域,用于帮助用户在进行邮件合并时快速插入收件人地址信息
- Word中的快捷键有很多,但是在办公中,F4按键可以说是最实用的,它可以重复上一操作步骤,很多场合中都可以用到,替代了很多快捷键功能,下面让
- 这篇文章主要为大家介绍了Excel2016如何转换为Word文档。小编给大家带来Excel2016快速转换Word文档的方法,需要的朋友可以
- 当我们使用win10系统想要升级时,发现系统更新界面的更新按钮呈灰色,根本无法点击。这件事该怎么解决,看小编是怎么说的吧。win101903
- Win10系统可以说是最常用的系统之一了,在使用Win10系统的电脑过程中总会遇到一些特别的问题,例如夜间模式使用不了的情况,那么碰到这种情
- 很多用户在使用电脑过程中会碰上蓝屏问题,碰上蓝屏最稳妥安全的方式是进入安全模式进行排查检测。windows系统经过更新,很多用户都不清楚现在
- 我们都知道默认情况下,word文档语言的首选项是简体中文,所以在用户界面和帮助语言中,显示的语言都是与Microsoft Windows匹配
- 许多公共场所都不允许吸引,因为吸烟不仅有害健康,而且还影响他人的健康,还会污染环境,所以在一些公共场所我们有必要贴一张禁烟标志。下面小编就为
- 很多win10用户在应用应用的时分发掘了“端口占用的问题”不过很多用户不晓得稽查占用的是那个端口,实在很轻易稽查和解决,下面来看看想想的教程
- Word中字符间距的设置,一般编辑文字的是比较少用到的,但是如果是为了美观,要顺应排版的需要的话,这种设置就是必须的。无论是字符的紧缩,还是
- word排版是办公自动化最常见也最重要的工具,最能体现word综合排版水平的就是Word小报了,只要你有一定的word排版基础,通过以下的步
- 我们有时候用WPS表格处理了一些数据,但是我们还有一些文件没有添加进来,这时候我们可以采取添加插入附件的方法来添加,这样别人打开我们的表格的
- excel三栏斜线表头怎么制作步骤一:边框线的添加。边框线的添加别无选择,就使用单元格的边线即可。如下图所示。 &
- 设置好工作表后,有时还需要将其打印成纸质文件,下面就来学习如何在Excel中打印电子表格 设置好工作表后,有时还需要将其打印成纸质
- excel2016表格怎么添加图片题注列表?excel2016表格中可以使用SmartArt添加图片题注列表,该怎么添加呢?下面我们就来看看
- 前段时间就一位网友反馈到关于在word文档中插入表格,表格不完全显示的情况?而脚本之家就针对该word插入表格不显示的现象来给大家进行分析及
- 我们在对Excel表格进行操作的时候,经常发现有超级链接。但如果因为某种原因不想保留超级链接,就需要手动进行删除。如果要是只删除一个超级链接
- Win10 1909怎么升级21H1?Win10 1909已经于5月11日停止更新服务了,如果你想一步到位,跳过2004和20H2版本,直接