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

时间:2013-12-09 08:31:18

标签: function spreadsheet openoffice-calc

我想在Openoffice Calc中显示随机课程(MBA,MSc)。我尝试了=RANDBETWEEN('MBA', 'MSc')=RAND('MBA', 'MSc'),但它并不适用。

2 个答案:

答案 0 :(得分: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 :(得分: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")

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