我正在尝试使用 if 函数生成随机数据,以供我的同事练习。
公式如下:
=IF(COUNTBLANK(E70)=1,"",(IF(E70="Shell Head office and Back",IF(RANDBETWEEN(1,10)<3,"MeetingatHeadOffice",IF(RANDBETWEEN(1,10)<6,"Report Submission","Training")),IF(RANDBETWEEN(1,10)<7,"Inspect - Oil Damage Claim",IF(RANDBETWEEN(1,10)<5,"Claim Finding Discussion","Incident Isolation")))))
这是我想如何为我的同事生成练习信息以供复习的粗略想法。文档中有多个与此类似的函数。我想将函数之间的随机数减少到 1,并具有如上所述的多个条件和多个结果。
答案1
假设我们想要实现:
但是我们希望公式不要RANDBETWEEN()
一遍又一遍地重复。我们可以使用CHOOSE()
如下方法:
=CHOOSE(RANDBETWEEN(1,10),"A","A","A","B","B","C","C","C","D","D")
编辑#1:
这是一个仅包含一个的解决方案RANDBETWEEN()
,但需要一个小的分配表来驱动它。将 10 个选项放在列中A. 将所需百分比 (作为整数)列乙 在C1进入:
=B1
在C2进入:
=B2+C1
并向下复制。列C表示累积分布(作为整数):
在上表中,我们想要
10% A
5% B
6% C
等等。
最后F1进入:
=INDEX($A$1:$A$10,MATCH(TRUE,INDEX($C$1:$C$10>=RANDBETWEEN(1,100),0),))
我无法避开额外的桌子。