楼主 rongjun |
题目:随机抽取A1:E10区域内的任一数值数据。 要求:1、用函数完成,不用VBA,不用辅助区域,不定义名称; 2、各数据被抽取的概率相等,重复的数据按一个计算,空值和文本不参与抽取。 3、数据源数据可变,但区域格式固定,不得更改。 随机抽取数字——题目.rar 请用回复可见方式跟帖答题。 |
2楼 syz105729913 |
我先献丑了,有点长,当是抛砖了 =INDEX(SMALL(IF(ISNUMBER(IF(MATCH(SMALL(A1:E10,ROW(1:50)),SMALL(A1:E10,ROW(1:50)),)=ROW(1:50),ROW(1:50))),SMALL(A1:E10,ROW(1:50))),ROW(1:50)),RANDBETWEEN(1,COUNT(1/FREQUENCY(A1:E10,A1:E10)))) |
3楼 棉花糖 |
我的也很长 我把文本也放进去了。哈哈。算了 [隐藏] [/隐藏] >> |
4楼 syz105729913 |
谢谢提醒,省了一个INDEX可以连带着省一个ROW了,呵呵 |
5楼 棉花糖 |
只能剑走偏锋了=INDIRECT(TEXT(SMALL(IF(FREQUENCY(A1:E10,IF(ISNUMBER(A1:E10),A1:E10,MIN(A1:E10)-1)),INT(ROW(5:55)/5)*100+MOD(ROW(5:55),5)+1),RANDBETWEEN(1,SUM((FREQUENCY(A1:E10,A1:E10)>0)*1))),"r0c00"),) |
6楼 biaotiger1 |
重在参与,继续参与
不知道怎么设置回复可见,用笨办法设置了,也不知道是否成功 |
7楼 biaotiger1 |
=INDIRECT(TEXT(SMALL(IF((COUNTIF(OFFSET(A1,,,ROW(1:10),COLUMN(A:E)),N(OFFSET(A1,ROW(1:10)-1,COLUMN(A:E)-1)))=1)*(A1:E10<>"")*ISNUMBER(A1:E10),ROW(1:10)*1000+COLUMN(A:E),65536256),RAND()*SUM(N(FREQUENCY(A1:E10,A1:E10)>0))+1),"R0C000"),) 果真有问题哦,同行的相同数字全部屏蔽了 呵呵 现在如何 |
8楼 棉花糖 |
=LARGE(IF(ISNUMBER(1/(LARGE(A1:E10,ROW(1:50)-1)-LARGE(A1:E10,ROW(1:50))))+(ROW(1:50)=1),LARGE(A1:E10,ROW(1:50))),RANDBETWEEN(1,COUNT(1/FREQUENCY(A1:E10,A1:E10)))) 做点简化,还有更好答案,再发。 |
9楼 西山晴雪 |
学习学习高手们的解法 |
10楼 wjh619993018 |
来个超长的 =SMALL(IF(MATCH(SMALL(IF(ISNUMBER(A1:E10),A1:E10,MAX(A1:E10)+1),ROW(1:50)),SMALL(IF(ISNUMBER(A1:E10),A1:E10,MAX(A1:E10)+1),ROW(1:50)),)=ROW(1:50),SMALL(IF(ISNUMBER(A1:E10),A1:E10,MAX(A1:E10)+1),ROW(1:50)),MAX(A1:E10)+1),1+INT(RAND()*(SUM((MATCH(SMALL(IF(ISNUMBER(A1:E10),A1:E10,MAX(A1:E10)+1),ROW(1:50)),SMALL(IF(ISNUMBER(A1:E10),A1:E10,MAX(A1:E10)+1),ROW(1:50)),)=ROW(1:50))*1)-1))) |
11楼 gql |
额....还没想到答案..先先看看咯 |
12楼 uncledi |
学习学习~~~~~ |
13楼 一剑书生 |
学习来啦! |
14楼 周晗露 |
重在参与,继续参与 |
15楼 wenshui2006 |
學習一下........ |
16楼 liujiah |
学习中 学习学习高手们的解法 |
17楼 san__mao |
观看观看 ....... |
18楼 dgxsdr |
练习11:随机抽取数字.rar |
19楼 swallow5121 |
学习,学习 |
20楼 amulee |
看看,学习了 |
21楼 donghan |
学习学习。 |
22楼 苍耳子 |
好 |
23楼 xj9696 |
学习学习高手们的解法 |
24楼 |
只有看的份了 |
25楼 前前后后 |
学习学习 |
26楼 sakuraai88 |
GGGGGGGGGGGGGGG |
27楼 pml |
谢谢分享,学习了 |
28楼 hongxiuming |
学习学习学习 |
29楼 wjc2090742 |
重在参与。学习来了。也试着写了一个,大概离题了吧? {=LARGE(IF(ISNUMBER($A$1:$E$10),$A$1:$E$10,""),RANDBETWEEN(1,SUM(--ISNUMBER($A$1:$E$10))))} Abc |
30楼 wjc2090742 |
唉,我真是笨,数字个数不一样,出现概率也是不一样的嘛,怪我一点不懂统计。 还是本着重在参与的精神,写一个笨公式,也不知道对错。 {=LARGE(IF(MATCH(LARGE($A$1:$E$10,ROW(INDIRECT("1:"&COUNT($A$1:$E$10)))),LARGE($A$1:$E$10,ROW(INDIRECT("1:"&COUNT($A$1:$E$10)))),0)=ROW(INDIRECT("1:"&COUNT($A$1:$E$10))),LARGE($A$1:$E$10,ROW(INDIRECT("1:"&COUNT($A$1:$E$10)))),""),RANDBETWEEN(1,COUNT(1/FREQUENCY(A1:E10,A1:E10))))} |
31楼 yangcy |
不会!只能瞧瞧看了! |
32楼 cococococo |
不会 悄悄答案 |
33楼 cococococo |
怎么看不到阿 怎么看不到阿 |
34楼 xpm130 |
很想学习一下. |
35楼 卖火柴的帅哥 |
答案在那? |
36楼 mosforyou |
不知是否合题意哦! 随机抽取数字——题目.rar |
37楼 sam.tan |
我不会,请高手指教,谢谢 |
38楼 sam.tan |
我不太明白,有哪位高手可以解释一下吗?谢谢 |
39楼 杏花雨V翟 |
回帖学习一下 |
40楼 悟空师弟 |
来个超长的数组公式:
|
41楼 smoile |
似乎有点难,看来真是要好好学习学习了 |
42楼 body1919 |
学学看 刚来呢 |
43楼 bbredheaven |
俺来学习学习 |
44楼 sdk2k4 |
我是来学习的 |
45楼 zhouxu10086 |
学习学习 |
46楼 adwa |
学习学习 |
47楼 金陵白玉床 |
不会,我想直接看,因为不能用过去的VB代码来做 |
48楼 gouyuanpei |
没头绪,来学学 |
49楼 linskying |
来学习的。完全不懂 |
50楼 babajuer |
请教 |
51楼 Zaezhong |
看题目还是比较新颖的,学习下~~ |
52楼 zhanghi |
来看答案 |
53楼 涅磐86970 |
自己写出来600字符... 咋没有标准答案啊- - |
54楼 scrisme |
没考虑过这方面的应用,进来学习一下 |
55楼 LoveJinLee |
来学习下。 差距很大说 思路呀。 |
56楼 Deksan |
这个题目有难度 留个记号 |
57楼 yunipu |
讨教 |
58楼 bensonlei |
只有看的份了. 学习 |
59楼 wcymiss |
学习一下 |
60楼 鬼狐 |
=IF(COUNT(A1:E10)=0,"",SMALL(IF(MATCH(SMALL(A1:E10,ROW(INDIRECT("1:"&COUNT(A1:E10)))),SMALL(A1:E10,ROW(INDIRECT("1:"&COUNT(A1:E10)))),)=ROW(INDIRECT("1:"&COUNT(A1:E10))),SMALL(A1:E10,ROW(INDIRECT("1:"&COUNT(A1:E10))))),INT(RAND()*SUM(N(FREQUENCY(A1:E10,A1:E10)>0)))+1)) 回复,纯粹是为了看到更精彩的公式~~ |
61楼 fengzhaoji |
新人求解~~ |
62楼 fangjianp |
新到ET,浏览了几个函数帖子,见到rongjun超级版主这道题,试了试,有难度。花了2天时间,总算有了答案,整理简化,形成我的最终答案,用EXCEK2003解答的。由于EXCEL2003的局限,公式较长:216字符,详见附件,附件除了公式,还解释了公式的思路。若用EXCEL2007及以上版本,解答会更短些,如统计及判断函数,估计公式长度可在200字符左右,但思路一样,没有增加什么新技巧,所以就给了个EXCEL2003解答。现呈上。请rongjun版主审核,请楼上各位e友指正!谢谢! 随机抽取数字——题目_fangjianp.rar |
63楼 yuxin78 |
=SMALL(IF(ISNUMBER(A1:E10),A1:E10,""),INT(RAND()*(SUM(N(ISNUMBER(A1:E10))))+1)) 不会用回复可见 |
64楼 piny |
好題 參與
呵 匆匆看完全部解答 可再簡為
主要是計算區域內不重複數值之個數 先前用COUNT(0/(MATCH(SMALL(A1:E10,ROW(1:50)),SMALL(A1:E10,ROW(1:50)),)=ROW(1:50))) 原來可以用COUNT(1/FREQUENCY(A1:E10,A1:E10)) 哈 ^^ |
65楼 yuxin78 |
原来还要去除重复值,唉,那公式写出来就太长了 |
66楼 fangjianp |
回rongjun版主: 如果没有0,公式中FREQUENCY(IF(1-ISTEXT(A1:E10),RANK(A1:E10,A1:E10)),ROW(1:50))肯定会将0筛选掉的,我测试过的,比如有只有字符和非零数字,结果是绝对不会出现0的 |
67楼 piny |
若把A2及D6這兩格刪除,則你的公式皆僅顯示0(測試:2007) |
68楼 rongjun |
我的测试结果也一样(2010版) |
69楼 fangjianp |
是的,单元格A1是个陷阱。直接用FREQUENCY()就行了,多此一举!呵呵^^………… |
70楼 战地英雄 |
|
71楼 sharprain |
{=INDIRECT(TEXT(LARGE(IF(A1:E10="",0,ROW(A1:E10)*100+COLUMN(A1:E10)),RANDBETWEEN(1,50-COUNTBLANK(A1:E10))),"R00C00"),0)} |
72楼 Violet_Universe |
我那天还准备做呢,今天有时间一看,哦晕,原来是2009年的, |
73楼 xiangchuwudi |
等我试试啊~看看行不 |
74楼 公路造价 |
不错,借鉴借鉴好经验! |
75楼 时绱ぶ败家钕 |
想学习学习 |
76楼 angellbxsc |
学习精彩公式 |
77楼 jzdst |
学习学习高手们的解法 |
78楼 yangkeyuan |
重在参与 |
79楼 w83365040371 |
|
80楼 yc1058 |
一起进步 |
81楼 timothyzhu |
学习学习 |
82楼 bluexuemei |
学习! |
83楼 传递 |
|
84楼 stormyqq |
学习学习 |
85楼 袜子很臭啊 |
看看答案~~ |
86楼 上将 |
|
87楼 david180 |
LLL |
88楼 秋天的灵魂㊣ |
没办法 |
89楼 exleod |
我也有这个问题。一定要看看 |
90楼 柳絮飘飞2001 |
gao shou |
91楼 hylees |
|
92楼 健康快乐123 |
都是高手啊,不会 |
93楼 。_原点 |
来看看人家的 |
94楼 tzfcn |
有意思! |
95楼 txc |
|
96楼 玉丫头 |
回复看一下答案 |
97楼 向快乐出发 |
回复看一下答案 |
98楼 sylzldd |
下载学习了 |
99楼 芐雨 |
学习学习 |
100楼 碧海波涛 |
学习 |
101楼 梦幻骑士 |
来看看答案,写不出来。 |
102楼 ykqrs |
我理解的对吗?应该不会这么简单。。
|
103楼 scarlettt4826 |
期待 |
104楼 kirstenzyl |
用的是=INT(RAND()*(MAX(A1:E10)-MIN(A1:E10)+1)+MIN(A1:E10)),貌似是错的 |
105楼 冷笑 |
期待 |
106楼 1194660928 |
|
107楼 cocotang02 |
|
108楼 日月经天 |
看看 |
109楼 懃奋学习 |
学习一下 |
110楼 唱一首の曲° |
来看看这个题目,学习高手方法。 |
111楼 helisen |
|
112楼 铅笔人 |
先学习下! |
113楼 RobinJiang |