Комментарии 22
Как-то это очень костыльно, это невозможно читать, невозможно поддерживать.
А вам, фактически, не нужны сложные табличные функции, вам нужен CRUD, совместная работа и взаимосвязи между таблицами. Которые наверняка можно написать проще и чище, чем вот это:
=ЕСЛИ(ЕНД(ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!B:F”);5; ЛОЖЬ))=ЛОЖЬ; ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!B:F”);5; ЛОЖЬ); ЕСЛИ(ЕНД(ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!C:F”);4; ЛОЖЬ))=ЛОЖЬ; ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!C:F”);4; ЛОЖЬ); ЕСЛИ(ЕНД(ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!D:F”);3; ЛОЖЬ))=ЛОЖЬ; ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!D:F”);3; ЛОЖЬ); ЕСЛИ(ЕНД(ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!E:F”);2; ЛОЖЬ))=ЛОЖЬ; ВПР(A4;importrange(“имя_таблицы”;“‘Лист1’!E:F”);2; ЛОЖЬ);“НИМА ТАКОГО“))))
и, тем более, вот это:
=ifs(L3="DeadlyGames";0;L3="BattleRoyale";0;L3="TeamDuel";0;1=1; ЕСЛИ(I3="killPlayer";ifs(A3=0; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")>=(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38)6; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")<(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38+TasksData!$B$47)6;1;0);0);A3=1; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")>=(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38+TasksData!$B$47+TasksData!$B$48+TasksData!$C$34+TasksData!$C$36+TasksData!$C$38)6; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")<(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38+TasksData!$C$34+TasksData!$C$36+TasksData!$C$38+TasksData!$B$47+TasksData!$B$48+TasksData!$C$47)6;1;0);0);A3=2; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")>=(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38+TasksData!$B$47+TasksData!$B$48+TasksData!$C$34+TasksData!$C$36+TasksData!$C$38+TasksData!$C$47+TasksData!$C$48+TasksData!$D$34+TasksData!$D$36+TasksData!$D$38)6; ЕСЛИ(СЧЁТЕСЛИ($I$2:I2;"killPlayer")<(TasksData!$B$34+TasksData!$B$36+TasksData!$B$38+TasksData!$B$48+TasksData!$C$34+TasksData!$C$36+TasksData!$C$38+TasksData!$D$34+TasksData!$D$36+TasksData!$D$38+TasksData!$B$47+TasksData!$C$47+TasksData!$C$48+TasksData!$D$47)6;1;0);0));0))
Что касается сложных функций. Мы используем таблицы не только для баланса, но и для генерации нового контента, симуляции рандомов, дропа и многого другого. И нам для этого не нужно привлекать программистов и делать что-то прямо на проекте.
А вообще основная идея в том, чтобы максимально все автоматизировать. У нас каждый сотрудник может прийти с предложением сделать проще. Например, если где-то можно написать одну формулу, которая затем сэкономит кучу ручной работы — отлично. Главное, чтобы процесс был автоматизирован и удобен для всех.
Вы можете обижаться и минусовать, но у меня один клиент недавно как раз просил автоматизацию с основой в Google Sheets. Я сделаль классный импорт, это всё работает -- до поры до времени. Так что отлично себе Но представляю рабочий процесс на этой базе. Вердикт -- это именно костыль , то есть в какой-то момент подломится и подставит.
Ещё один клиент до сих пор работает небольшим офисом в одной огромной общей Excel-ке. И тоже считает, что процесс налажен, зачем что-то менять? Иногда экселька ломается, начинает весить несколько гигов и её приходится руками восстанавливать. Но процесс налажен...
В этом опасность костылей, никогда не знаешь, когда с них грохнешься.
Это можно делать без знания языков/программ/кода и так далее — даже неподготовленный человек может быстро и наглядно работать с результатом. В другом случае придется потратить несколько дней на ТЗ, технический ресерч, карточки, менеджмент, подключение других сотрудников к задаче и прочее. Все эти процессы упростили до таблиц.
Вы же видите -- сложность уже сейчас зашкаливает, это абсолютно нечитаемый, неподдерживаемый код, в котором невозможно отловить ошибки, его выполнение не контролируется никак.
То есть вы сумели решить задачу, но инструментом, совершенно для этого масштаба уже не предназначенным. При этом вполне несложно было бы сделать табличную основу на нормальном простом языке, php или python, и дальше всё писать на них.
Если ваши ребята осилили написать это в Таблицах, то уж на Питоне они же без проблем справились бы, им было бы легче, а система -- в разы надёжнее.
Не говоря уж о том, что важная часть инфраструктуры лежит в Google Sheets, что само довольно ненадёжно.
Соль на спину уж точно. Excel никак не отнять, все привыкли.
:D
Я думаю, нужен не этот хтонический ужас с формулами, а админпанель с БД внутри, таблицами снаружи, дополнительными проверками на валидность изменений и деплоем через git. Но я не настаиваю ;)
Тоже для себя открыл Excel когда играл в Eve Echoes и нужно было делать промышленный отдел в корпе (нужно было erp+crm+jira). Тоже писали скрипты, кнопки с автоматизацией, вебхуки, интеграция с discord.
В итоге начали помогать китайцам писать webapp под это дело. Потому что Excel для другого и имеет лимиты.
Сначала окрылились как вы, всё устраивало, но потом поняли что много воюем с экселем, вместо продуктивности.
Для тестов шансов дропа, проверки гипотез - он хорош.
Для управления вашими данными - не советую.
Делали почти так же, но с экспортом в CVS и потом в sqlite для клиента и MySQL для сервера. Все виды связей, валидации, дропдауны, изображения - это был кромешный ад и вереницы скриптов с формулами )
Работало, конечно и было удобно, особенно для одновременных правок, но наверное мы в итоге больше человеко-часов потратили на поддержание, чем бы ушло на разработку своей админки.
Жутковато.
Примеры формул стоило бы убрать под спойлеры
Ребята, вы молодцы, респект большой. Отвязаться от зависимости DEV ресурса для автоматизации, как первый шаг - очень круто и правильно с тз бюджетов и рисков.
Дальнейшая автоматизация нужна (админка и тп), если там кратный профит будет от этого.
Кстати, вопрос - а как вы в этой системе решили вопрос с версиями? Как откатиться, как понять в какой версии произошло то или иное изменение?
Кстати, вопрос — а как вы в этой системе решили вопрос с версиями? Как откатиться, как понять в какой версии произошло то или иное изменение?Это уже решается нашим конфиг-менеджером. При обновлении версии конфига на сервере сохраняется кто, когда и что залил, там же есть инструмент, показывающий разницу. При необходимости всегда можно поднять полную историю изменений.
НО! Кому вы душу продали чтоб они у вас не тупили ?!)))
Автоматизация или смерть: как управлять тысячами единиц игрового контента с помощью гугл-таблиц