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

Tam*_*n C 4 random formula openoffice-calc

我想在 OpenOffice Calc 中显示随机课程 ( MBA, MSc)。我试过:

=RANDBETWEEN('MBA', 'MSc')  
Run Code Online (Sandbox Code Playgroud)

=RAND('MBA', 'MSc')`  
Run Code Online (Sandbox Code Playgroud)

但它们不能按预期工作。

toh*_*ohu 6

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

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

试试下面的公式:

=CHOOSE(ROUND(RAND()+1);"MBA";"MSc")
Run Code Online (Sandbox Code Playgroud)

或在不同的行拆分:

=CHOOSE(
    ROUND(
        RAND()+1
    );
    "MBA";
    "MSc"
)
Run Code Online (Sandbox Code Playgroud)

根据你的定位,你最多需要更换参数分割;:

解释:

  • CHOOSE公式从值列表中进行选择;选择基于第一个参数(此处:四舍五入的随机值);
  • ROUND公式将小数四舍五入为整数;
  • RAND() + 1确保生成的随机值是12


小智 5

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

RAND 函数的 OpenOffice wiki 说...

RAND()*(b-a) + a

returns a random real number between a and b. 
Run Code Online (Sandbox Code Playgroud)

由于CHOOSE函数需要整数1到6来做出6个选择,RAND需要输出1到6的数字,我让a=1和b=6。

这是经过测试的,

=CHOOSE(ROUND(5*RAND()+1);"Business";"Science";"Art";"History";"Math";"Law")
Run Code Online (Sandbox Code Playgroud)

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

=CHOOSE(ROUNDUP(6*RAND()+0.00001);"Business";"Science";"Art";"History";"Math";"Law")
Run Code Online (Sandbox Code Playgroud)

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