从字符串列表中返回随机字符串的公式?

问题描述 投票:4回答:2

我想在OpenOffice Calc中显示随机课程(MBAMSc)。我试过了:

=RANDBETWEEN('MBA', 'MSc')  

=RAND('MBA', 'MSc')`  

但他们没有按照要求工作。

function spreadsheet openoffice-calc
2个回答
4
投票

在OpenOffice Calc中,RAND function返回0到1之间的值 - 因此您必须组合不同的公式才能从两个文本值中随机选择。需要以下步骤:

  • 将rand的结果舍入为整数;
  • 基于该整数,从列表中选择。

请尝试以下公式:

=CHOOSE(ROUND(RAND()+1);"MBA";"MSc")

或分成不同的行:

=CHOOSE(
    ROUND(
        RAND()+1
    );
    "MBA";
    "MSc"
)

根据您的本地化,您最多必须用;替换参数分隔符:

说明:

  • CHOOSE formula从一系列价值观中选择;选择基于第一个参数(此处:舍入随机值);
  • ROUND formula将小数舍入为整数;
  • RAND() + 1确保得到的随机值是12

1
投票

我不是一个对电子表格有深刻理解的用户,但我认为这是一个有趣的问题。我想玩一个有两个以上选择的例子,并尝试了六个选择的练习。

RAND功能的OpenOffice wiki说......

RAND()*(b-a) + a

returns a random real number between a and b. 

由于CHOOSE函数需要整数1到6来进行6次选择,因此RAND需要输出1到6之间的数字,我让a = 1且b = 6。

经过测试,

=CHOOSE(ROUND(5*RAND()+1);"Business";"Science";"Art";"History";"Math";"Law")

这输出了六个课程的随机选择,但我发现六个选择没有相同的选择机会。商业和法律有十分之一的机会被选中,科学,艺术,历史和数学有二分之一的机会被选中。

=CHOOSE(ROUNDUP(6*RAND()+0.00001);"Business";"Science";"Art";"History";"Math";"Law")

似乎给所有六门课程提供了几乎平等的选择机会。

© www.soinside.com 2019 - 2024. All rights reserved.