问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

excel数据透视表如何填充不重复的随机整数

发布网友 发布时间:2024-10-01 23:35

我来回答

1个回答

热心网友 时间:2024-10-17 17:32

本文分享一个基于公式生成n×n随机整数的解决方案,并且每个整数都是唯一的。例如,下显示了生成10行10列的不重复随机整数。

解决方案

在单元格A1中输入数组公式:

=SMALL(IF(FREQUENCY(($A2:$J$11,B1:$K1),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1),RANDBETWEEN(1,100-COUNTA($A2:$J$11,B1:$K1)))

向右向下拖拉至单元格J10。

通常,将此矩阵放置在工作表中的某位置,对于输出结果的最左上角单元格的公式,引用的两个单元格区域包括:

1)10×10的单元格区域从最左上角的单元格正下方的单元格开始,向下并向右延伸。

2)最左上角单元格右侧的1×10单行单元格数组

这里都是相对/绝对混合引用。

工作原理

考虑使用FREQUENCY函数,不仅可以生成通常使用COUNTIF函数能够获得的结果,而且还可以操作由多个单元格区域组成的引用。

让我们从示例中随便选择一个公式,看看其是如何工作的。例如,在单元格C8中的公式:

=SMALL(IF(FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1),RANDBETWEEN(1,100-COUNTA($A9:$J$11,D8:$K8)))

可以看到,公式引用的两个单元格区域是:D8:$K8和$A9:$J$11,如下所示。

公式中的:

FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)

是这种情况下COUNTIF函数有用的替代,它可以用于返回一个由单元格区域内某些值个数组成的数组,而且执行这些计数的单元格区域不是单个连续的区域,而是两个这样的区域。这里需要注意的是FREQUENCY函数的一个特点,即返回的数组比传递给它的元素数量多。因此,上面的结构解析为:

{0;1;0;0;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;1;0;0;0;1;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;0;0;1;1;1;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0}

显然,我们对该数组中的零感兴趣,因此在IF函数中将以上内容设置等于为零,其中IF函函数的参数value_if_true的值是一个从0到99的整数数组,因此:

IF(FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1)

转换为:

IF({0;0;0;0;0;1;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;1;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;1;0;0;0;1;1;1;0;0;1}=0,ROW(INDIRECT(“1:100”))-1)

转换为:

IF({0;0;0;0;0;1;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;1;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;1;0;0;0;1;1;1;0;0;1}=0,{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99})

转换为:

IF({TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE},{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99})

结果为:

{0;1;2;3;4;FALSE;6;FALSE;8;9;10;FALSE;12;FALSE;14;15;16;17;18;19;FALSE;21;FALSE;FALSE;24;25;FALSE;27;28;29;30;31;32;33;34;35;FALSE;FALSE;FALSE;FALSE;40;41;42;43;FALSE;FALSE;46;47;48;49;50;51;52;53;54;55;56;57;FALSE;59;60;61;FALSE;63;64;FALSE;66;67;68;69;70;FALSE;FALSE;73;74;75;76;77;FALSE;79;80;81;82;83;84;85;86;FALSE;88;FALSE;FALSE;91;92;93;FALSE;FALSE;FALSE;97;98;FALSE}

现在,成功地创建了一个不在公式单元格下面的行或右边的单元格中的所有值组成的数组,剩下的就是从此数组中随机选择一个数值。

实现这一目标的一种方法是将上述数组传递给SMALL函数,并指定参数k的值为合适的随机数。由于数组中的数字元素数等于100减去所引用的区域的元素数,因此可以将其用于RANDBETWEEN函数的top参数:

100-COUNTA($A9:$J$11,D8:$K8)

使用了COUNTA函数,可用于处理多个单元格区域。因此:

RANDBETWEEN(1,100-COUNTA($A9:$J$11,D8:$K8))

转换为:

RANDBETWEEN(1,100-27)

其中的27等于单元格区域$A9:$J$11中的20个非空元素加上D8:$K8中的7个非空元素。(注意,将A1:J10区域周边的无关单元格有意地留为空白单元格非常重要)

综上,公式转换为:

=SMALL({0;1;2;3;4;FALSE;6;FALSE;8;9;10;FALSE;12;FALSE;14;15;16;17;18;19;FALSE;21;FALSE;FALSE;24;25;FALSE;27;28;29;30;31;32;33;34;35;FALSE;FALSE;FALSE;FALSE;40;41;42;43;FALSE;FALSE;46;47;48;49;50;51;52;53;54;55;56;57;FALSE;59;60;61;FALSE;63;64;FALSE;66;67;68;69;70;FALSE;FALSE;73;74;75;76;77;FALSE;79;80;81;82;83;84;85;86;FALSE;88;FALSE;FALSE;91;92;93;FALSE;FALSE;FALSE;97;98;FALSE},RANDBETWEEN(1,73))

得到所需的结果。

小结

FREQUENCY函数、COUNTA函数可以操作多个单元格区域。

热心网友 时间:2024-10-17 17:33

本文分享一个基于公式生成n×n随机整数的解决方案,并且每个整数都是唯一的。例如,下显示了生成10行10列的不重复随机整数。

解决方案

在单元格A1中输入数组公式:

=SMALL(IF(FREQUENCY(($A2:$J$11,B1:$K1),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1),RANDBETWEEN(1,100-COUNTA($A2:$J$11,B1:$K1)))

向右向下拖拉至单元格J10。

通常,将此矩阵放置在工作表中的某位置,对于输出结果的最左上角单元格的公式,引用的两个单元格区域包括:

1)10×10的单元格区域从最左上角的单元格正下方的单元格开始,向下并向右延伸。

2)最左上角单元格右侧的1×10单行单元格数组

这里都是相对/绝对混合引用。

工作原理

考虑使用FREQUENCY函数,不仅可以生成通常使用COUNTIF函数能够获得的结果,而且还可以操作由多个单元格区域组成的引用。

让我们从示例中随便选择一个公式,看看其是如何工作的。例如,在单元格C8中的公式:

=SMALL(IF(FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1),RANDBETWEEN(1,100-COUNTA($A9:$J$11,D8:$K8)))

可以看到,公式引用的两个单元格区域是:D8:$K8和$A9:$J$11,如下所示。

公式中的:

FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)

是这种情况下COUNTIF函数有用的替代,它可以用于返回一个由单元格区域内某些值个数组成的数组,而且执行这些计数的单元格区域不是单个连续的区域,而是两个这样的区域。这里需要注意的是FREQUENCY函数的一个特点,即返回的数组比传递给它的元素数量多。因此,上面的结构解析为:

{0;1;0;0;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;1;0;0;0;1;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;0;0;1;1;1;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0}

显然,我们对该数组中的零感兴趣,因此在IF函数中将以上内容设置等于为零,其中IF函函数的参数value_if_true的值是一个从0到99的整数数组,因此:

IF(FREQUENCY(($A9:$J$11,D8:$K8),ROW(INDIRECT(“1:99”))-1)=0,ROW(INDIRECT(“1:100”))-1)

转换为:

IF({0;0;0;0;0;1;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;1;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;1;0;0;0;1;1;1;0;0;1}=0,ROW(INDIRECT(“1:100”))-1)

转换为:

IF({0;0;0;0;0;1;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;0;1;1;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;1;0;1;1;0;0;0;1;1;1;0;0;1}=0,{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99})

转换为:

IF({TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE},{0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99})

结果为:

{0;1;2;3;4;FALSE;6;FALSE;8;9;10;FALSE;12;FALSE;14;15;16;17;18;19;FALSE;21;FALSE;FALSE;24;25;FALSE;27;28;29;30;31;32;33;34;35;FALSE;FALSE;FALSE;FALSE;40;41;42;43;FALSE;FALSE;46;47;48;49;50;51;52;53;54;55;56;57;FALSE;59;60;61;FALSE;63;64;FALSE;66;67;68;69;70;FALSE;FALSE;73;74;75;76;77;FALSE;79;80;81;82;83;84;85;86;FALSE;88;FALSE;FALSE;91;92;93;FALSE;FALSE;FALSE;97;98;FALSE}

现在,成功地创建了一个不在公式单元格下面的行或右边的单元格中的所有值组成的数组,剩下的就是从此数组中随机选择一个数值。

实现这一目标的一种方法是将上述数组传递给SMALL函数,并指定参数k的值为合适的随机数。由于数组中的数字元素数等于100减去所引用的区域的元素数,因此可以将其用于RANDBETWEEN函数的top参数:

100-COUNTA($A9:$J$11,D8:$K8)

使用了COUNTA函数,可用于处理多个单元格区域。因此:

RANDBETWEEN(1,100-COUNTA($A9:$J$11,D8:$K8))

转换为:

RANDBETWEEN(1,100-27)

其中的27等于单元格区域$A9:$J$11中的20个非空元素加上D8:$K8中的7个非空元素。(注意,将A1:J10区域周边的无关单元格有意地留为空白单元格非常重要)

综上,公式转换为:

=SMALL({0;1;2;3;4;FALSE;6;FALSE;8;9;10;FALSE;12;FALSE;14;15;16;17;18;19;FALSE;21;FALSE;FALSE;24;25;FALSE;27;28;29;30;31;32;33;34;35;FALSE;FALSE;FALSE;FALSE;40;41;42;43;FALSE;FALSE;46;47;48;49;50;51;52;53;54;55;56;57;FALSE;59;60;61;FALSE;63;64;FALSE;66;67;68;69;70;FALSE;FALSE;73;74;75;76;77;FALSE;79;80;81;82;83;84;85;86;FALSE;88;FALSE;FALSE;91;92;93;FALSE;FALSE;FALSE;97;98;FALSE},RANDBETWEEN(1,73))

得到所需的结果。

小结

FREQUENCY函数、COUNTA函数可以操作多个单元格区域。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天涯论坛的网址是什么啊? 如何辨别天涯社区的官方网站? 天涯社区的官方网址是什么呀? 嘉陵火星人(150CC)报价 广西能上150C的摩托车牌吗 隆鑫200cc和150cc的发动机怎么辨认_百度问一问 150cc大船摩托车问题!请高手帮我·· 我想问问这是125cc还是150cc 滁州琅琊山的门票要多少钱 为什么手机连上WiFi却无法上网了? 如何解除手机静音? 华为荣耀3的软件是否真的只能装到手机内存?就不能装到外置内存卡? 谁知道从双井桥南就是百环家园附近到分钟寺小红门里面的加油站怎么坐... 请问北京朝阳区双井桥百环家园离朝阳中航大厦多远 东三环中路双井桥旁百环家园 如何在表格中隔五行提取数据? 1g版的华为荣耀3c用16g的内存卡会卡吗 华为荣耀3内存卡问题 北京百环家园日租公寓双井桥南到悠唐生活广场怎么走 双井桥百环家园车库什么样 关于npn晶体管中发射结与集电结的偏置问题 请问女性学主要学什么? 【半导体101】Vol.2 | 半导体的主要器件(一)认识PN结 PN结正向导通时其内外电场方向一致这种说法对吗 贴纸的胶印子怎么去除妙招(如何用最低成本清除贴纸留痕) 我今天也是被可诺丹婷的人拉去后交了六百订金,剩下的一千四说是可以分期... 我用系统设置里的一个小软件,册掉了快捷方式的箭头后,如何恢复回来? 我是在360优化大师那里更新了一个应用,可是在安装的时候,没有安装,却... 平板微信怎么和手机微信同时登陆吗? 车险买哪几种险就够了(小白必看指南) 华为荣耀3如何使用外置内存卡 方庄到东三环双井桥百环家园18号 19pro手机静音怎么解除 楼月微信聊天记录恢复助手是什么软件 ...后来之间的交往越来越少。但是她一直在我的心里。现在我想表达_百度... 胸钛注射液用于尖锐湿疣有效果吗 您好,我这几天治疗阴道尖锐湿疣,也是红光雾化,深 部热疗,导管介入,请问... 真珠美学APP谁用过,有什么好用的产品推荐吗? 股权分配有什么作用 健脾胃按摩这些穴位 12月去海南旅游合适吗 海南旅游攻略必去景点 电焊工证是不是全国通用的? 中脘穴在什么地方 腹胀艾灸哪个穴位 用微信里的那个视频通话需要收取费用吗? 视频通话是不需要收取费用_百 ... 梅毒传播途径有哪些? 微信里的视频通话是怎么收费 ...咕咕叫,而且在上课的时候,突然咕的一声。。好尴尬... 怎样调整电视机的色彩? 上课肚子叫尴尬怎么办