Excel:轮盘赌的动态单元格参考

时间:2018-05-01 22:38:18

标签: excel excel-formula roulette-wheel-selection

我尝试构建一个轮盘赌(0-36)并且有一个关于单元格引用的问题:我想定义当有人投注Red时会发生什么,并且excel将仅在需要时应用红色的定义。 (更一般:我想定义所有轮盘赌投注选项,例如Odd,Column bet,Corner等,并在需要时应用定义。)

enter image description here

看图片:两个人投注红色,但只有一个结果是正确的:D2(正确的红色投注将加倍)。 D3没有加倍,因此是错误的。

公式

D2:=IF(B2="Red"; C5 ;IF(B2="Black";C6;C2))在此公式中,我想引用基础公式C5的工作原理。 (在此方案中,只有部分B3="Red";C5是相关的。)

D3:=IF(B3="Red"; C5 ;IF(B3="Black";C6;C3))在此公式中,我想引用基础公式C5什么不起作用。 (在此方案中,只有部分B3="Red";C5是相关的。)

C5:=IF(OR($A$2=1;$A$2=3;$A$2=5;$A$2=7;$A$2=9;$A$2=12;$A$2=14;$A$2=16;$A$2=18;$A$2=19;$A$2=21;$A$2=23;$A$2=25;$A$2=27;$A$2=30;$A$2=32;$A$2=34;$A$2=36); C2 * 2; -C2 )

(假设)问题:C5公式被引用到C2(参见最后两个元素)。

我的目标:每当有一个" Red"在Bet部分中输入(例如B列),它将应用(更正的)Definition Red C5。为了做到这一点,C5公式的C2*2;-C2部分必须根据" Red"赌注是:B2或B10是否是"红色"它应该适用基础公式。而且,它应该像我的例子一样为多个投注应用正确的公式。

我希望你明白我想说的话。如果有人能帮助我会很高兴: - )

1 个答案:

答案 0 :(得分:1)

如果我正确理解了所有内容,则可能无法使用单个单元格获取获胜金额C5和丢失金额C6。原因是,每次基于下注将有不同的获胜金额和亏损金额。这就是第2行正在运行的原因。它使用获胜金额公式C2中的第2行赌注C5。您可以在获胜金额公式C3*2; -C3中使用C5来使第3行工作,但之后D2会被破坏!

以下是使用Excel 2010的两个屏幕截图,可能有所帮助(这也在LibreOffice 5.1.6.2中进行了测试)。这是一个部分解决方案,虽然它确实不是最好的。但是,这个想法应该使用内置函数(没有VBA)。

示例1

Excel 2010 Worksheet with results from a roulette of 2

示例2

Excel 2010 Worksheet with results from a roulette of 33

说明

如果下注者的投注类型最终成为赢家(K栏),则此解决方案要求构建详尽的投注类型列表(第I列)以及支付乘数。列J包含结果数A2是否会导致投注类型获胜(TRUE)或丢失(FALSE)的计算。我用于显示示例的计算是:

  • 红色:=OR($A$2=1,$A$2=3,$A$2=5,$A$2=7,$A$2=9,$A$2=12,$A$2=14,$A$2=16,$A$2=18,$A$2=19,$A$2=21,$A$2=23,$A$2=25,$A$2=27,$A$2=30,$A$2=32,$A$2=34,$A$2=36)
  • 黑色:=OR($A$2=2,$A$2=4,$A$2=6,$A$2=8,$A$2=10,$A$2=11,$A$2=13,$A$2=15,$A$2=17,$A$2=20,$A$2=22,$A$2=24,$A$2=26,$A$2=28,$A$2=29,$A$2=31,$A$2=33,$A$2=35)
  • 低:=AND($A$2>=1,$A$2<=18)
  • 高:=AND($A$2>=19,$A$2<=36)
  • 奇怪:=MOD($A$2,2)=1
  • 偶:=MOD($A$2,2)=0
  • 1st Dozen:=AND($A$2>=1,$A$2<=12)
  • 第二打:=AND($A$2>=13,$A$2<=24)
  • 第三打:=AND($A$2>=25,$A$2<=36)

我不是轮盘赌专家,所以我可能没有他们说得对......但我猜你已经知道了胜利的公式。

我的方法的问题是创建详尽的胜利列表(第I列,第J列和第K列)将需要付出很多努力。可能有一个更优雅的解决方案,但我必须更多地考虑它。

现在您可以使用I2:I10函数获取每个投注者的投注类型(B栏)并从所有投注类型(MATCH)的集合中找到相应的投注。此过程的结果显示在C列中。列D只是公式的说明,因此您无需将其包含在电子表格中。

获得索引后,您可以将其与INDEX函数一起使用,以查看J2:J10以查看投注类型是否为赢家。如果它是赢家,您还可以使用索引从K2:K10中找到相应的支付乘数,并将其乘以列E中的赌注。如果它不是赢家,则结果是丢失赌注。此过程的结果显示在F列中。列G只是公式的说明,因此您无需将其包含在电子表格中。

请记住,当您添加更多投注类型时,列I,J和K范围将需要扩展。因此,除了I2:I10J2:J10K2:K10之外,您最终会获得更大的范围。

我在this answer中更详细地解释了MATCHINDEX函数,尽管在某个地方的在线手册中查找它们可能会更好。