1。如何对一行数据判断的结果,取另外一行同一列的值? 例如A1:G1的值为1...7,对这七个单元格的值进行最大值比较,判断出G1的值最大,则我想将C1的值=G2的值,我应该怎么做呢? 同样,如果我不是对行进行比较,而是对列进行比较呢? 这样说吧,相当于SQL语句中的:select field1 from tablename where field2='value' 就是现在field2(相当于excel中的一行或一列)中找到值等于'value'的记录(相当于我上面提到的excel一行或一列中找到最大值),然后找出这个记录中另外一个字段的值(相当于excel中另一列或另一行与之对应的单元格里面存放的值)。
2。有一行不规则的数据,例如:A1=0.17302, B1=0.142875,C1=0.48274这三个数据。 那么现在我想在A2中取一个随机数,但是这个随机数有这样一个规定:A2=0的概率=这三个数中最小的数占三个数总和的比重,按上面的例子就是[B1/SUM(A1:C1)]*100%,A2=1的概率=这三个数中第二小的数占三个数总和的比重,如果不止三个数,则依此类推。 这样求解吧:A1+B1+C1=0.17302+0.142875+0.48274=0.798635。放大1000000倍后=798635 然后相当于C语言的如下给A2赋值: i=random(798635); if(i>1000000*0.48274/0.798635) A2=2; else if(i>1000000*0.17302/0.798635) A2=1; else A2=0;
3。对于第二个问题,我还想问多一下,excel中有相当于C中的stwitch语句功能的函数吗?如果遇到一些多条件选择的语句,总是用if很烦,而且if语句嵌套不能超过7层,实现起来更是麻烦,呵呵。。。(这里我说的函数是指不需用到vba编程的情况下,如果没有,那告诉我用vba编程是哪个语句,没用过vba编程,对vb的语法也没了解,呵呵。。。) 谢谢各位大侠了。。。 |