Excel的IF函数里如何套用其他表格数据?

举例:
在表格2的A1里面输入函数“=INDEX({"A","B","C"},3*RAND()+1)”;
在表格2的A1里输入IF函数“=IF(J9>35,"√",IF(J9=35,"√",IF(J9<35,"")))
我想让√换成表格2的A1数据,要如何套用?

直接把字符"√"替换为前者等于符号后的公式,即:
=IF(J9>35,INDEX({"A","B","C"},3*RAND()+1),IF(J9=35,INDEX({"A","B","C"},3*RAND()+1),IF(J9<35,"")))

公式可简化为:
=IF(J9<35,"",INDEX({"A","B","C"},3*RAND()+1))追问

请问下,为什么INDEX函数里,最后要+1呢?

追答

3*RAND()得出的数是一个大于0小于3的数。加1是防止“取0”值。

追问

那如果在前面INDEX选择项里增加2个,后面的3是否就要改成5?
再问下,从35-121之间随机选择一个整数,参考网上的公式为=INT(RAND()*(35-121+1)+121)。
请问,如何再简化呢?为什么要+1呢?如果是要取带一位小数的呢,比如101.2,43.7这种?
另外,从INDEX函数里,有可能来设置随机比例么?比如ABC,我希望A有50%概率,B30%,C20%这样

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-23
“=INDEX({"A","B","C"},3*RAND()+1)”;可以再简化,改为
=CHAR(65+RAND()*3)
“=IF(J9>35,"√",IF(J9=35,"√",IF(J9<35,"")))可以简化为
=IF(J9>=35,"√","")
引用表2A1,改为
=IF(J9>=35,Sheet2!A1,"")追问

居然直接修改了。。。
开始我是想问:
1.CHAR函数大概是怎么用?
2.那个65是什么意思,ABC哪去了。。
3.RAND()*3,3是代表有几个备选项的数目,对吗?
4.INDEX函数,最后的那个+1是什么意思?
再请问下,我想从35-121之间随机选择一个整数,参考网上的公式为=INT(RAND()*(35-121+1)+121)。
请问,如何再简化呢?为什么要+1呢?如果是要取带一位小数的呢,比如101.2,43.7这种?

追答

=INT(RAND()*(35-121+1)+121)真不知道这个公式怎么想出来的,公式永远不会取到35,取到121的可能性也近于0,可以将这个公式下拉右拉验证。
这个不是简化不简化的事情,它就是个错的,如果取35-121,正确公式可为
=INT(RAND()*(35-121+1)+121)
RAND()返回0-1之间的一个随机数,它可能为0,但不可能为1,为了防止它取到0(虽然可能性微乎其微),所以加1。
带小数,你又没有说范围,我来举个例,-5到6之间保留一位小数,
=ROUND(RAND()*11,1)

追问

你的公式和网上的不是一样的么。。。。都是INT(RAND()*(35-121+1)+121)。。。。
-5到6之间的ROUND(RAND()*11,1)没看懂。。。求解释。另外,范围就是35-121
另外,你说的IF(J9>=35,Sheet2!A1,"") ,不能用诶,我用楼下那个方法倒OK了
还有上面1和2能帮我解释下么?谢谢哈

追答

抱歉,刚才粘贴错了,应该是
=35+INT(RAND()*(121-35+1))
35-121之间随机值。