今天笔者要讲的是在指定的数字范围内抽取随机不重复的数字。适用的嵌套公式能否达到准确的结果?笔者将从几个方面对公式的结果进行验证和分析!
本文内容绝对干货,详细分析了公式各组成部分的作用和意义。
前面作者介绍了一个公式,可以直接应用来解决随机取不重复值的情况。可以参考《Excel如何随机生成指定区间范围内不重复的数字?看这个可套公式》!
但笔者在评论区看到了很多质疑的声音,认为公式不仅复杂,而且无法获得所需的随机不重复值,没有实际意义。
但是公式的逻辑很清晰,作者也查了很多遍。为此,本文对公式进行了验证,并解释了公式的运算逻辑。
首先,我们使用条件格式来突出显示重复的值。
如下图动画所示,具体操作比较简单。首先,选择数据区域,然后单击条件格式——以突出显示单元格规则-重复值,然后设置填充颜色以显示具有重复值的单元格。
但是,通过动画的操作演示,我们可以看到没有重复的值被突出显示!
有没有可能认为这个公式是准确的?一端有带圈可握的短马鞭
接下来,我们来看看公式验证的流程。
也比较简单。首先,创建一个公式来计算数据区域中的单元格数量,如下所示:
=COUNTA(F1:F109)
counta函数的意义是计算区域中非空单元格的个数,这里的结果是109。
然后输入sum countif函数的组合公式:
{=SUM(COUNTIF(F1:F109,F1:F109))}
这里countif函数的条件使用了单元格区域,结果也会得到一个数组,这个数组会依次计算单元格区域F1:F109中从F1到F109的数值个数。
显然,如果有重复值,那么countif函数的计数不等于1。重复一次等于2,重复两次等于3。
最后结合sum函数进行汇总求和。从下图可以看出,公式结果等于109,表示数据区没有重复值。
通过以上两种方法来验证公式的有效性,姑且认为公式的结果是准确的。
但是公式的逻辑是什么?
现在公式是:
{=-right(small(randbetween(row(1:109)0,1000)*1000行(1:109),第行(1:109)),3)}
我们来分解一下公式。right函数提取字符串右侧指定数量的字符,它的第一个参数是小函数表达式,而小函数的第一个参数是randbetween函数表达式和row函数的加法。
现在让我们看看表达式“rand between (row (1: 109) 0,1000) * 1000”的分析结果。
“ROW(1:109)”的结果是一个1到109的数组,其零次方等于1。因此randbetween函数将随机选择1到109之间的任意数字。那为什么要用row函数,在这里进行零次方运算呢?
原因很简单,因为row函数可以得到一个数组结果,通过嵌套row函数,randbetween函数的表达式也可以得到一个数组结果,所以当randbetween函数的结果乘以1000,得到一个从1到109的随机数乘以1000,得到的数的后三位都是0,结果如下图所示。
接下来添加“row(1:109)”,因为它的结果值是一个从1到109的数字,row函数得到的结果值不会重复。但是,randbetween函数得到的后三位数是0。无论randbetween函数随机选取哪一组数字,randbetween函数的后三位始终为0。所以添加了row函数后,randbetween函数的后三位会是1-109位,不重复!
所以当我们使用right函数提取右边的3个字符时,正好是1到109之间的数字,这个数字不会被前面的randbetween函数row函数重复。
至此,不知大家能否理解公式的运算逻辑。
它有两个特点。randbetween函数随机给出0之前的三个数,row函数获取指定区间内不重复的值。两个值相加,然后用小函数排序,最后输出不重复的随机结果值!
关于小函数在公式中的作用,作者举了一个例子。例如,randbetween函数随机生成939,000,246,000.加1,99.结果是939,001,246,099.用小函数明显排在939,001,所以在计算公式的时候。
而如果不加小函数,结果是从1开始,然后2,3,4 …直到109,这不是随机值!
至此,笔者也重新审视了公式的应用,更加确信这个嵌套的公式能够输出有效的结果!
童鞋们还有疑问或者不明白,可以把公式抄到表格上进行实际练习!
作者早些时候介绍了使用指定名称批量创建工作表,但是今天,情况正好相反。他要解释的是如何通过公式提取所有工作表的名称。
如下图所示,此工作簿包含许多数据工作表。现在,为了制作一个类似导航的快速跳转列表,有必要引用所有这些工作表名称。
但今天的内容主要是学习提取工作表名称的公式书写和操作方法。
在excel表格中,只有单元格函数可以提取当前工作表的名称,但其效果并不能满足我们提取所有工作表名称的需求。
所以我们需要使用一个宏表函数。
宏函数不能直接在单元格中使用,需要通过定义公式来间接引用。
定义公式的操作属于excel的基础和常用功能,操作并不复杂。
首先点击公式工具栏,在其功能区找到“定义公式”选项,直接点击进入其设置界面。然后在弹出的界面中,输入“名称”和“参考位置”的公式。
具体操作如下图动画所示。在名称框中输入“工作表名称”,参考位置的公式为:=https://www.zhucesz.com/(1)
https://www.zhucesz.com/是excel宏表函数的表达式。有四种常见的固定表达式:
=https://www . https://www.zhucesz.com/(1)-列出所有工作表名称
=https://www . https://www.zhucesz.com/(2)-通常返回错误值 n/a。
=https://www . https://www.zhucesz.com/(3)-列出当前工作表名称。
=https://www . https://www.zhucesz.com/(4)-计算工作簿中有几个工作表。
通过定义公式,得到指定名称“工作表名称”的宏表函数结果。
接下来,使用index函数来引用结果。


在线咨询
188-2371-9231