我一直在为Pathfinder(一款类似D&D的游戏(开发随机角色生成器。我的生成器工作得很好,具有一些高级功能,可以使用=randbetween函数创建动态范围。我把它设置为根据切换的复选框来注释列表中的范围。这在大多数情况下都有效,但有时函数会在不应该返回FALSE的时候返回,但没有错误代码,我很难找到问题。这是我函数的一个基本示例。
=if(B3=true,index({
IF(B5=TRUE,{D5,E5,F5}),
IF(B6=TRUE,{D6,E6,F6}),
IF(B7=TRUE,{D7,E7,F7})
},randbetween(1,COUNTA({
IF(B5=TRUE,{D5,E5,F5}),
IF(B6=TRUE,{D6,E6,F6}),
IF(B7=TRUE,{D7,E7,F7})
}))),"")
这是工作表的链接。https://docs.google.com/spreadsheets/d/1YS3ayQxS6vA67dlh61hrr-zJzWdOL5LWZj8_P0Wblko/edit?usp=sharing
您提供的函数示例工作正常。工作表中的这一个并不是因为您在带括号的数组中的IF
函数之前错误地放置了=
符号,这不是正确的语法。
更改此项:
=if(B3=true,index({
=IF(B5=TRUE,AlignmentGood),
IF(B6=TRUE,AlignmentNeutral),
IF(B7=TRUE,AlignmentEvil,"No Input")
},randbetween(1,COUNTA({
=IF(B5=TRUE,AlignmentGood),
IF(B6=TRUE,AlignmentNeutral),
IF(B7=TRUE,AlignmentEvil,"No Input")
}))),"No Input")
对此:
=if(B3=true,index({
IF(B5=TRUE,AlignmentGood),
IF(B6=TRUE,AlignmentNeutral),
IF(B7=TRUE,AlignmentEvil,"No Input")
},randbetween(1,COUNTA({
IF(B5=TRUE,AlignmentGood),
IF(B6=TRUE,AlignmentNeutral),
IF(B7=TRUE,AlignmentEvil,"No Input")
}))),"No Input")