首页 Excel教程内容详情

在excel中利用数组公式生成不重复的随机整数列

2025-05-15 13 office教程网
在excel中利用数组公式生成不重复的随机整数列

站点名称:在excel中利用数组公式生成不重复的随机整数列

所属分类:Excel教程

相关标签: # 公式 # 数组 # 整数 # 随机 # Excel函数

官方网址:

SEO查询: 爱站网 站长工具

进入网站

站点介绍

要在Excel中生成不重复的随机整数列,例如将1-22这22个数进行随机排列,通常用在辅助列中输入RAND函数并排序的方法来实现。如果不用辅助列和VBA,用数组公式也可以实现。在A2单元格中输入数组公式:

=LARGE(ROW($1:$22)*(1-COUNTIF($A$1:A1,ROW($1:$22))),INT(RAND()*(23-ROW(A1))+1))

公式输入完毕按Ctrl+Shift+Enter结束,然后拖到填充柄填充公式到A23,即可在A2:A23中生成1-22这22个数,并随机排序。

说明:

1. “ROW($1:$22)”产生一列包含1-22的垂直数组,如果需要更多的数值,将“22”改为所需数值即可。

“1-COUNTIF($A$1:A1,ROW($1:$22))”用COUNTIF函数判断已产生的数值,如果某个数字已在A列出现,则其对应位置为0,否则为1。

ROW函数的用途概述

ROW函数为返回引用单元格的行号或单元格区域。语法:ROW(reference),举个例子:=row(a15),返回值为15;=row(),返回值为公式所在单元格的行号;还可以引用数组。 =row(a1) 返回a1的行号,=1 =row(1:1) 返回第一行的行号,=1

上述两项相乘后得到一个包含“0”和未出现数字的数组,并作为LARGE函数的第一个参数。例如在A9单元格中两项相乘的结果为数组:

{0;0;3;4;0;6;0;8;9;10;11;0;0;14;15;16;17;18;19;20;0;22}

其中“13、7、5、1、12、2、21”这7个数已在A列中出现,其对应位置为“0”。

2.“INT(RAND()*(23-ROW(A1))+1)”为LARGE函数的第二个参数,其作用是产生一个随机整数,以A9单元格为例,由于已出现7个数字,还有15个数字未出现,故随机数的最大值为15,该项产生一个1-15之间的随机整数。

如果要在行中生成随机整数列,可用下面的数组公式,以B3单元格为例:

=LARGE(COLUMN($A3:$V3)*(1-COUNTIF($A3:A3,COLUMN($A3:$V3))),INT(RAND()*(23-COLUMN(A3))+1))

然后向右拖到公式到W3即可。也可选择B3:W3继续向下填充公式在多行中产生随机整数列,如图。

excel数组公式提取区域中的重复值

有时需要要提取多行多列区域中的重复数据到某列,如下图所示,A2:C11包含一些重复的水果名称(已用深红色进行了标记),要将重复的名称提取到E列。 在E2中输入数组公式: =INDIRECT(TEXT(MIN(IF((COUNTIF($A$2:$C$11,$A$2:$C$11)>1)*(COUNTIF($E$1:

浏览统计(最近30天)