是否有人知道是否可以用对另一个工作表的单元格引用替换 RAND 命令中的概率参考?
我使用下面的基本公式进行加权随机文本选择。我的想法是,我只需将单元格向下拖动即可填写表格。
在另一张表上,我创建了一个计算器,可以计算出每个条目的累积概率。
因为我必须手动编辑公式来更新概率。如果我可以用计算器表中的单元格引用替换花括号中的概率,那么可以节省时间 - 即 {0,Calc!C3,Calc!C4,Calc!C5 等...
这可能吗?我试过了,但只出现了错误。
请注意:我没有高级 Excel 技能。这是我在 Excel 中尝试过的最复杂的事情。
代码
=CHOOSE(MATCH(RAND(),{0,0.05,0.15,0.3,0.54,0.74,0.79,0.89,0.99,1}),"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")
工作簿– 这是实际工作表的 Dropbox 链接。它很怪异:我为狼人启示录角色扮演游戏制作了它。
答案1
就我最了解您的问题而言,我建议采用以下解决方案。请检查您的终端并确认它是否满足您的要求。
我看到您将概率视为一个范围。例如 0 - 0.4、0.4 - 0.65 等等。最后一个值应自动为 1,因为 RAND 也会生成一个介于 0 和 <1 之间的数字。
例如,在您的工作表中“对概率进行排序”,创建一个如下表格。希望这不言自明,您从顶部的 0 开始,然后分别在下面的单元格中引用原始概率列中的先前值。
在您的主工作表中,例如“9 月”,在单元格 D2 及下方输入以下公式。
=CHOOSE(MATCH(RAND(),TRANSPOSE('Rank probabilities'!$D$2:$D$7)),"1","2","3","4","5","6")
现在,在公式栏中按CTRL+ SHIFT+ENTER创建数组公式。公式现在应括在花括号中,以表明它是一个数组公式。
沿着预期的行向下复制,然后按 F9 手动计算。TRANSPOSE 将完成将垂直概率列转置为水平数组的技巧,它将替换公式中的手动数字数组。
请参阅下面的屏幕转 GIF 快照。在您的终端进行测试并确认这是否适合您。在此示例中,仅修改了工作表“9 月”的 D 列以反映公式方法。您也可以为其他实例复制相同的操作。