Excel公式练习48: 比较字符串中的字符本次的练习是:在单元格A2中给定一个字符串值,仅由大写字母组成且字符长度至少为2。在单元格B2中输入公式:如果A2中字符串的各个字符按字母升序排列(从左到右),则返回TRUE;否则返回FALSE。 公式
在单元格B2中的公式为:
=AND(GESTEP(MMULT(CODE(MID(A2,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1))+{0,1},1)),{-1;1} 公式解析
首先,让我们看一下公式中的用于生成要传递给MID函数的参数的数组的结构:
ROW(INDEX(A:A,1):INDEX(A:A,LEN(A2)-1))
该构造与下面的标准结构返回相同的数组: 如果单元格A2中的字符串为“AABBCCCC”,很显然有8个字符,可以得到:
ROW(INDEX(A:A,1):INDEX(A:A,7))
转换为:
ROW(A1:A7)
得到:
{1;2;3;4;5; 因此:
{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 小案例-01-字符串转计算公式Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
Python:3.6.0
本系列介绍一些小案例,综合运用所学,但又不会很复杂
今天介绍字符串转计算公式 已知一个已字符串存储的公式'max(a,b,c,d,e)'
其中a,b,c,d,e分别表示P1-P5点,{'a': 'P1', 'b': 'P2', 'c': 'P3', 'd': 'P4', 'e': 'P5'}
已知P1-P5的取值,求这个公式得到的结果
本示例的应用示例是,计算公式是由用户自由输入,然后写入数据库。 定期更新公式求得的结果
Part 2:步骤
?
考虑公式中的自变量为小写的a,b,c,d,e,但计算函数如max中也是含有a的。 eval(formula_info_4),将字符串直接转换为公式,并进行运算得出结果
这里需要强烈一下,因为eval是将字符串直接转换为表达式,所以在开放的环境下不建议使用,防止被不友好的人利用。 zishendianxia
2021-03-22
1.1K0

Excel经典公式:提取位于字符串后面的数字标签:公式与函数
有时候,可能有一个数据集,单元格中包含着文本和数字,其中数字在字符串的右侧,如下图1所示,你希望删除所有文本,而只保留数字。 图1
下面的公式将删除数字左侧的所有文本,因此只剩下字符串中的数字部分。 图2
上面的公式移除了单元格中左侧的文本部分,只剩下右侧的数字。
公式中:
FIND({0,1,2,3,4,5,6,7,8,9},A2)
将在单元格中查找这10位数字,并返回这些数字的位置组成的数组。 此时,IFERROR公式在单元格中找到数字时将返回一个数字,如果找不到数字,则将返回该单元格中字符串的长度(使用LEN公式完成)。 为此,使用LEN函数来计算单元格中字符串的总长度,并从中减去刚才得到的结果,这样就可以知道左侧有多少个文本字符。
最后,使用了RIGHT函数从右侧提取所有数字,这意味着左侧的所有文本字符都被删除了。 
Excel公式技巧11: 从字符串中提取数字——数字位于字符串末尾上篇文章讲解了提取位于字符串开头的数字的公式技术,本文研究从字符串开头提取数字的技术:
1. 这些数字是连续的
2. 这些连续的数字位于字符串的末尾
3. 因此,上述公式转换为:
=0+MID("ABC456",MIN({7,19,13,14,4,5,6,21,11,17}),LEN("ABC456"))
MIN函数返回字符串中数字开始的位置4,因此,上述公式转换为 这样,上述公式转换为:
=0+MID("ABC456",4,6)
得到结果:
456
下面我们看看如果单元格A1中的字符串包含其它数字例如123ABC456,公式1是否有效。 LOOKUP与RIGHT
公式2:
=-LOOKUP(0,-RIGHT(A1,ROW(INDIRECT("1:"& LEN(A1)))))
这个公式与上一篇文章《Excel公式技巧10:从字符串中提取数字 ——数字位于字符串开头》中的公式1相似,只是使用RIGHT函数代替了LEFT函数。