Существуют ли ограничения для формул If и Then в таблицах GoogleSheets?

#google-sheets #google-sheets-formula

#google-таблицы #google-sheets-формула

Вопрос:

У меня проблема со следующей формулой…

 =IF(AND(D18<=72,G18="Defensive"),2000,IF(AND(D18<=74,G18="Defensive"),5000,IF(AND(D18=75,G18="Defensive"),10000,IF(AND(D18=76,G18="Defensive"),20000,IF(AND(D18=77,G18="Defensive"),40000,IF(AND(D18=78,G18="Defensive"),60000,IF(AND(D18=79,G18="Defensive"),70000,IF(AND(D18=80,G18="Defensive"),80000,IF(AND(D18=81,G18="Defensive"),90000,IF(AND(D18=82,G18="Defensive"),100000,IF(AND(D18=83,G18="Defensive"),110000,IF(AND(D18=84,G18="Defensive"),120000,IF(AND(D18=85,G18="Defensive"),140000,IF(AND(D18>=86,G18="Defensive"),160000,IF(AND(D18>=88,G18="Defensive",1800000,IF(AND(D18<=72,G18="Attacking"),2000,IF(AND(D18<=74,G18="Attacking"),5000,IF(AND(D18=75,G18="Attacking"),15000,IF(AND(D18=76,G18="Attacking"),25000,IF(AND(D18=77,G18="Attacking"),50000,IF(AND(D18=78,G18="Attacking"),70000,IF(AND(D18=79,G18="Attacking"),80000,IF(AND(D18=80,G18="Attacking"),85000,IF(AND(D18=81,G18="Attacking"),95000,IF(AND(D18=82,G18="Attacking"),110000,IF(AND(D18=83,G18="Attacking"),120000,IF(AND(D18=84,G18="Attacking"),135000,IF(AND(D18=85,G18="Attacking"),160000,IF(AND(D18>=86,G18="Attacking"),210000,IF(AND(D18>=88,G18="Attacking"),230000,0)))))))))))))))))))))))))))))))
  

Как только он достигает первого оператора IF И, который включает G18=»Attacking», я получаю ошибку неправильного числа аргументов, ожидая 2 или 3, но получая 1. Для меня это не имеет смысла, и я не вижу никаких проблем. Когда я тестирую только те, у которых G18=»Attacking» самостоятельно, все работает нормально.

Есть ли какие-то ограничения, о которых я не знаю?

Вот ссылка на то, где мы что-то тестируем

Спасибо

Ответ №1:

Здесь у вас опечатка:

 AND(D18>=88,G18="Defensive",1800000,IF(
  

AND Функция не принимает так много аргументов, поэтому сообщение об ошибке является тем, что оно есть. Вероятно, вы пропустили ) .

Как я это нашел, спросите вы. Я добавил новые строки после каждой ( и перед каждой ) (простой автоматический поиск-замена в Vim), затем использовал автоматический отступ в Vim. После этого в режиме без переноса вся цепочка выглядит как красивая лестница, из которой торчит только вышеупомянутая неисправная часть.

Ответ №2:

Попробуйте это, действительно, вы забыли скобку в одной из формул AND s:

 =IF(AND(D18<=72,G18="Defensive"),2000,IF(AND(D18<=74,G18="Defensive"),5000,IF(AND(D18=75,G18="Defensive"),10000,IF(AND(D18=76,G18="Defensive"),20000,IF(AND(D18=77,G18="Defensive"),40000,IF(AND(D18=78,G18="Defensive"),60000,IF(AND(D18=79,G18="Defensive"),70000,IF(AND(D18=80,G18="Defensive"),80000,IF(AND(D18=81,G18="Defensive"),90000,IF(AND(D18=82,G18="Defensive"),100000,IF(AND(D18=83,G18="Defensive"),110000,IF(AND(D18=84,G18="Defensive"),120000,IF(AND(D18=85,G18="Defensive"),140000,IF(AND(D18>=86,G18="Defensive"),160000,IF(AND(D18>=88,G18="Defensive"),1800000,IF(AND(D18<=72,G18="Attacking"),2000,IF(AND(D18<=74,G18="Attacking"),5000,IF(AND(D18=75,G18="Attacking"),15000,IF(AND(D18=76,G18="Attacking"),25000,IF(AND(D18=77,G18="Attacking"),50000,IF(AND(D18=78,G18="Attacking"),70000,IF(AND(D18=79,G18="Attacking"),80000,IF(AND(D18=80,G18="Attacking"),85000,IF(AND(D18=81,G18="Attacking"),95000,IF(AND(D18=82,G18="Attacking"),110000,IF(AND(D18=83,G18="Attacking"),120000,IF(AND(D18=84,G18="Attacking"),135000,IF(AND(D18=85,G18="Attacking"),160000,IF(AND(D18>=86,G18="Attacking"),210000,IF(AND(D18>=88,G18="Attacking"),230000,0))))))))))))))))))))))))))))))
  

Ответ №3:

Это тот случай, когда вам нужно хорошенько подумать о том, нет ли более простого способа добиться результата.

Например, вы могли бы создать таблицу поиска, а затем использовать очень простую формулу, которая позволила бы легко добавлять и отлаживать:

 =LOOKUP(D2,$I$2:$I$16,INDEX($J$2:$K$16,0,(G2="Def") (G2="Att")*2))
  

введите описание изображения здесь

Постскриптум

В вашей формуле есть условие, которое никогда не будет выполнено:

 ...IF(AND(D18>=86,G18="Defensive"),160000,IF(AND(D18>=88,G18="Defensive"),1800000...