本文介绍的技巧非常有趣。不知道有没有感兴趣的朋友看完可以多贡献几个泛数字。
诀窍在于使用公式从由字母数字字符组成的字符串末尾返回数字。例如,单元格A1中有以下字符串:
ABCDEF123456
使用公式:
=0 MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1"0123456789 ")),LEN(A1))
将返回字符串末尾的数字123456。
我们已经知道,在公式中,字符串“0123456789”与单元格A1中的字符串连接在一起是为了避免MIN函数返回的错误,因为如果单元格A1中没有包含从0到9的所有数字,那么FIND函数返回的结果将包含错误值,但是MIN函数不能忽略错误值,这会导致公式的结果是错误值。
首先,在单元格A1中的字符串末尾添加“0123456789”,并确保现在要搜索的字符串至少包含一个从0到9的数字(这样,FIND返回的10个值都是非错误值)。同时,通过将这个由0到9的10个数字组成的字符串放在A1的末尾,保证了MIN函数所需的输出不会受到影响。
下面的公式也可以得到同样的结果:
=0 mid(a1,min(find({0,1,2,3,4,5,6,7,8,9},a17^18)),len(a1))
这里用7 18代替加字符串“0123456789”。原因是7 ^ 18的结果是1628413597910450,其中包含了从0到9的每一个数字,所以可以达到和上面给出的公式一样的效果。
其实你也可以用5 19代替字符串“0123456789”也是出于同样的原因。那么,运算后还能找到这些泛数字公式吗?
当然,这样的操作数不胜数,但需要注意的是,操作中的字符总数要尽可能短,并且在Excel中可以重现。下面的图1显示了一些这样的表达式/数字列表。
图1
检查这些生成的数字在c列中是否包含10个从0到9的数字,单元格C2中的公式为:
=SUMPRODUCT(0 ISNUMBER(FIND({0,1,2,3,4,5,6,7,8,9},B2)))
您可以选择包含从0到9的10个数字的最小/最短的一个来代替字符串“0123456789”。