日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数

發(fā)布時間:2024/9/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)習(xí)Excel技術(shù),關(guān)注微信公眾號:

excelperfect

本文分享一個基于公式生成n×n隨機(jī)整數(shù)的解決方案,并且每個整數(shù)都是唯一的。例如,下圖1顯示了生成10行10列的不重復(fù)隨機(jī)整數(shù)。

圖1

解決方案

在單元格A1中輸入數(shù)組公式:

=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。

通常,將此矩陣放置在工作表中的某位置,對于輸出結(jié)果的最左上角單元格的公式,引用的兩個單元格區(qū)域包括:

1)10×10的單元格區(qū)域從最左上角的單元格正下方的單元格開始,向下并向右延伸。

2)最左上角單元格右側(cè)的1×10單行單元格數(shù)組

這里都是相對/絕對混合引用。

工作原理

考慮使用FREQUENCY函數(shù),不僅可以生成通常使用COUNTIF函數(shù)能夠獲得的結(jié)果,而且還可以操作由多個單元格區(qū)域組成的引用。

讓我們從示例中隨便選擇一個公式,看看其是如何工作的。例如,在單元格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)))

可以看到,公式引用的兩個單元格區(qū)域是:D8:$K8和$A9:$J$11,如下圖2所示。

圖2

公式中的:

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

是這種情況下COUNTIF函數(shù)有用的替代,它可以用于返回一個由單元格區(qū)域內(nèi)某些值個數(shù)組成的數(shù)組,而且執(zhí)行這些計數(shù)的單元格區(qū)域不是單個連續(xù)的區(qū)域,而是兩個這樣的區(qū)域。這里需要注意的是FREQUENCY函數(shù)的一個特點,即返回的數(shù)組比傳遞給它的元素數(shù)量多。因此,上面的結(jié)構(gòu)解析為:

{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}

顯然,我們對該數(shù)組中的零感興趣,因此在IF函數(shù)中將以上內(nèi)容設(shè)置等于為零,其中IF函函數(shù)的參數(shù)value_if_true的值是一個從0到99的整數(shù)數(shù)組,因此:

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

轉(zhuǎn)換為:

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)

轉(zhuǎn)換為:

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})

轉(zhuǎn)換為:

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})

結(jié)果為:

{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}

現(xiàn)在,成功地創(chuàng)建了一個不在公式單元格下面的行或右邊的單元格中的所有值組成的數(shù)組,剩下的就是從此數(shù)組中隨機(jī)選擇一個數(shù)值。

實現(xiàn)這一目標(biāo)的一種方法是將上述數(shù)組傳遞給SMALL函數(shù),并指定參數(shù)k的值為合適的隨機(jī)數(shù)。由于數(shù)組中的數(shù)字元素數(shù)等于100減去所引用的區(qū)域的元素數(shù),因此可以將其用于RANDBETWEEN函數(shù)的top參數(shù):

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

使用了COUNTA函數(shù),可用于處理多個單元格區(qū)域。因此:

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

轉(zhuǎn)換為:

RANDBETWEEN(1,100-27)

其中的27等于單元格區(qū)域$A9:$J$11中的20個非空元素加上D8:$K8中的7個非空元素。(注意,將A1:J10區(qū)域周邊的無關(guān)單元格有意地留為空白單元格非常重要)

綜上,公式轉(zhuǎn)換為:

=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))

得到所需的結(jié)果。

小結(jié)

FREQUENCY函數(shù)、COUNTA函數(shù)可以操作多個單元格區(qū)域。

注:本技巧整理自excelxor.com,有興趣的朋友對照原文研讀,收獲更豐。

總結(jié)

以上是生活随笔為你收集整理的small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。