Google Sheets: Случайный генератор Случайные ошибки? - PullRequest
0 голосов
/ 09 марта 2020

Я работал над генератором случайных персонажей для Pathfinder (игра типа D & D). У меня довольно хорошо работает генератор с некоторыми расширенными функциями для создания динамических диапазонов c с помощью функции = 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

1 Ответ

0 голосов
/ 11 марта 2020

Пример предоставленной вами функции работает правильно. Тот, что на вашем листе, не потому, что вы неправильно поместили = символы перед 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...