【pandigitals excel公式教程: 1/17和其他全数字】这篇文章介绍的技巧很有趣,不知道读完后,有没有感兴趣的朋友能再贡献出几个全数字(pandigitals)来 。
技巧来源于使用公式从由数字字母组成的字符串末尾返回数字,例如在单元格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”,确保要查找的字符串中现在至少包含1个0-9中的每个数字(这样,从FIND返回的所有10个值都是非错误值),同时通过将这个由0-9这10个数字组成的字符串放在A1的末尾以确保不会影响MIN函数所需的输出 。
下面的公式也可以得到相同的结果:
=0+MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&7^18)),LEN(A1))
这里使用了7^18来代替添加字符串“0123456789” 。究其原因,7^18的结果为1628413597910450,包含0-9中的每个数字,因此可以达到与前面给出的公式相同的效果 。
其实,还可以使用5^19来代替字符串“0123456789”,原因同上 。那么,还能不能找到运算后的结果是这些全数字(pandigital)的计算式呢?
当然,这样的操作数不胜数,但需要注意的是,操作中的字符总数应尽可能短,并且在Excel中是可复制的,下图1展示一些这样的运算式/数字列表 。
文章插图
图1
列C中检查这些生成的数字中是否包含0-9这10个数字,在单元格C2中的公式为:
=SUMPRODUCT(0+ISNUMBER(FIND({0,1,2,3,4,5,6,7,8,9},B2)))
可以从中选择一个包含0-9这10个数字且最小的/最短的作为字符串“0123456789”的替换 。
推荐阅读
- Excel函数:AVERAGE函数
- excel公式教程:求字符串中的数字组成的数能够被指定数整除的数的个数
- excel公式教程:TRANSPOSE,非数组版本
- excel公式教程: 求一列中的数字剔除掉另一列中的数字后剩下的数字
- excel公式教程: 找到和的加数
- excel公式教程:找到和的加数
- excel公式教程:拆分连字符分隔的数字并放置在同一列中
- Excel下拉菜单的三种做法
- Excel表格INDIRECT函数的妙用
- SUMPRODUCT分组排名公式