当前所在位置: 首页 > 儿童教育 > 正文

excel公式技巧: 比较字符串中的字符

2023-01-26 餐饮美食网 【 字体:

在单元格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、倒入低筋面、黄油和水,揉成面团状,藏一小时后取出,抹上黄油卷起,包上保鲜膜冷藏半小时。2、取出,将面团切成一厘米的面团,放入模具内,用力按压,中间稍薄,外缘要比模具高,将蛋挞液倒入蛋挞皮中,放入烤箱里烤30分钟即可。

肉火烧面怎么和面

肉火烧面怎么和面
1、首先用温水把酵母融开,加入面粉,用手把面粉揉成非常软的面团,可以放一点熬好的猪油在面团里面。2、然后放在温暖的地方,盖上保鲜膜发酵至2倍大,发好的面团用手插入不回缩,就说明面团发酵好了。

奶茶几分糖好喝

奶茶几分糖好喝
1、不同的人对奶茶的口感要求是不一样的,一般来说,奶茶有三分糖、五分糖、七分糖三种不同的口味。2、女生一般都喜欢喝甜一点的,而男生则喜欢喝不那么甜的,七分糖的奶茶最好喝。

过桥米线是哪里的?

过桥米线是哪里的?
过桥米线是来自云南省滇南地区的一种有名特色小吃。过桥米线最早是在清朝就已经出现,距离现在至少有一百多年的历史啦!起源于建水县东城外锁龙桥西侧的鸡市街头处,有建水的特产草芽、地椒作配料,风味独特而远近闻名。深受广大美食爱好者的喜欢,不少人为此专门长途跋涉,只为尝

面霜和乳液的区别

面霜和乳液的区别
面霜和乳液的区别,相较而言乳液的水分含量要比面霜高,乳液质地要轻薄一些,乳液主要作用是保湿,滋润可以隔离外界干燥的气候,面霜既可保湿,又可美白,还能抗衰老,乳液的吸收快一些,而面霜吸收比较慢一些,因为液体的吸收速度都比较快。

怎么摘隐形眼镜

怎么摘隐形眼镜
在摘隐形眼镜之前,先用洗手液将手清洗干净,以免将细菌带入眼睛内,对着镜子,用右手中指轻拉眼睛下眼睑,左手中指轻拉眼睛上眼睑,让黑色眼球暴露在空气中,用右手食指和拇指轻触镜片的两边缘部分,向中间推使镜片拱起,再用两手指轻轻捏出镜片即可。

粉饼和散粉的区别

粉饼和散粉的区别
粉饼是呈压缩固体状态,多呈圆形或者方形,散粉则是细腻的粉末状,粉饼遮瑕力会比较强一些,可以湿用做粉底,或者用来补妆,而散粉则是定妆的效果,粉饼通常用在底妆的第一步,而散粉通常用在底妆最后一步。

冷烫和热烫的区别

冷烫和热烫的区别
冷烫和热烫的区别:冷烫对头发的要求是要在保温状态下才能给卷有个好的效果,而热烫是在干和湿的情况下都行,热烫烫出来的头发比较自然明显而有弹力,冷烫的头发风干后基本看不出来,并且发质会有点干。

高品质香水如何鉴别?用三步就可以解决

高品质香水如何鉴别?用三步就可以解决
1、看色泽以天然香料调制而成的高级香水,都有它本来的颜色,且大都是琥珀色或褐色,看起来很像宝石,比如,从茉莉、玫瑰或水仙等天然鲜花中所萃取的精油都呈黄色、褐白或绿褐色;此外,香水中所添加的魅惑香气物性香料也是褐色,苔类中的橡树苔是绿色,从树根或树根脂类中萃取的

如何去除黑眼圈

如何去除黑眼圈
去除黑眼圈首先可以用热毛巾敷眼,然后再用冷毛巾敷,十分钟就能让黑眼圈淡化的不那么严重,其次将去壳后的鸡蛋用无菌纱布包裹住,敷于眼部轻轻转动,可以急救去除黑眼圈,另外抹完眼霜后,用双手顺时针按摩,可以促进血液循环消除黑眼圈。
本文Tag