数组中,有些单词包含了标点符号,但并不影响最终的结果 。
下面,我们需要对上面生成的数组中的每个元素执行两项测试:第一项测试是确定每个元素是否按顺序包含“a”、“e”、“i”、“o”、“u”这五个元素,第二项测试确定这五个元音字母在元素中仅出现一次 。
先看看公式中的:
ISNUMBER(SEARCH(“a*e*i*o*u”,Arry2))
SEARCH函数有一个很好的特性,接受通配符 。因此,在合适的地方插入通配符后,可以使用字符串“a*e*i*o*u”作为该函数的find_text参数 。这样,如果在查找的字符串中按顺序包含“a”、“e”、“i”、“o”、“u”这五个元素的话,则返回代表找到字符位置的数字 。上述公式可转换为:
{TRUE;FALSE;FALSE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE;FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; FALSE;FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE;FALSE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE;FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE;FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE}
我们将数组中的TRUE采用红色字体,与Arry2中相应的元素对应:
{“abstemious”;”people”;”who”;”are”;”not”;”facetious”;”by”;”nature”;”should”;”not”;”be”;”lacking”;”the”;”education”;”imbibing”;”of”;”arsenious”;”substances”;”will”;”not”;”make”;”them”;”more”;”abstentious.”;”indeed,”;”facetiousness”;”aside,”;”such”;”practices”;”are”;”likely”;”to”;”be”;”harmful,”;”as”;”many”;”acheilous”;”casualties”;”can”;”testify.”;”a”;”more”;”reliable”;”herbal”;”remedy”;”is”;”a”;”concoction”;”of”;”the”;”caesious,”;”annelidous”;”plants”;”found”;”anemious”;”plains”;”of”;”outer”;”mongolia,”;”plants”;”which”;”are”;”thought”;”to”;”contributed”;”to”;”the”;”diet”;”of”;”raeticodactylus.”}
显然,这些红色字体的元素满足我们的条件,但并不是所有都满足,其中有两个“facetiousness”和“raeticodactylus.”中有些元音多于一个 。
这样,我们需要进行第二项测试:
MMULT(0+(LEN(Arry2)-LEN(SUBSTITUTE(Arry2,{“a”,”e”,”i”,”o”,”u”},””))=1),{1;1;1;1;1})=5
这是一个标准的公式技术,用来确定字符串中某个字符有多少个:使用原始字符串的长度减去剔除掉指定字符后的字符串的长度 。
注意到,我们要确定的字符不是一个而是五个 。
对于LEN(Arry2),转换为原始字符串的长度:
{10;6;3;3;3;9;2;6;6;3;2;7;3;9;8;2;9;10;4;3;4;4;4;12;7;13;6;4;9;3;6;2;2;8;2;4;9;10;3;8;1;4;8;6;6;2;1;10;2;3;9;10;6;5;8;6;2;5;9;6;5;3;7;2;11;2;3;4;2;16}
公式中的:
LEN(SUBSTITUTE(Arry2,{“a”,”e”,”i”,”o”,”u”},””)
传递由五个值组成的数组给SUBSTITUTE函数的参数old_text,要确保这五个值组成的数组与Arry2正交 。由于Arry2是单列数组向量,那么这五个数组应该是单行数组向量 。这样,就形成了一个69行5列的数组,对应着每个单词删除一个元音字母后的字符串 。例如,生成的数组的第一行应该为:
猜你喜欢
- Excel公式技巧:从字符串中提取数字——数字位于字符串开头
- Excel公式: 获取非连续单元格区域中只出现一次的数字
- Excel公式技巧:十进制数转换成指定进制的数
- excel公式技巧:从单元格区域的字符串中提取唯一值
- VBA 怎么使用DATEADD函数
- Excel函数:AVERAGE函数
- pandigitals excel公式教程: 1/17和其他全数字
- excel公式教程:求字符串中的数字组成的数能够被指定数整除的数的个数
- excel公式教程:TRANSPOSE,非数组版本
- excel公式教程: 求一列中的数字剔除掉另一列中的数字后剩下的数字
