Здравствуйте. Можно ли как-то уменьшить формулу в части «епусто», при том что возможно добавление или уменьшение количества переменных по столбцу А, Excel - 2016.
Код
=ЕСЛИ(ИЛИ(ЕПУСТО(A16);ЕПУСТО(A22);ЕПУСТО(A27);ЕПУСТО(A33);ЕПУСТО(A40);ЕПУСТО(A45);ЕПУСТО(A53);ЕПУСТО(A59);ЕПУСТО(A66);ЕПУСТО(A73);ЕПУСТО(A80);ЕПУСТО(A87);ЕПУСТО(A94);ЕПУСТО(A100);ЕПУСТО(A107);ЕПУСТО(A113);ЕПУСТО(A120);ЕПУСТО(A126);ЕПУСТО(A132);ЕПУСТО(A138);ЕПУСТО(A143);ЕПУСТО(A149);ЕПУСТО(A155);ЕПУСТО(A161);ЕПУСТО(A168);ЕПУСТО(A174);ЕПУСТО(A180);ЕПУСТО(A190);ЕПУСТО(A196);ЕПУСТО(A206);ЕПУСТО(A212);ЕПУСТО(A218);ЕПУСТО(A224);ЕПУСТО(A234);ЕПУСТО(A240);ЕПУСТО(A247);ЕПУСТО(A253);ЕПУСТО(A261);ЕПУСТО(A268);ЕПУСТО(A275);ЕПУСТО(A280);ЕПУСТО(A285);ЕПУСТО(A292);ЕПУСТО(A299);ЕПУСТО(A305);ЕПУСТО(A310);ЕПУСТО(A316);ЕПУСТО(A323);ЕПУСТО(A329);ЕПУСТО(A334);ЕПУСТО(A346);ЕПУСТО(A358);ЕПУСТО(A367);ЕПУСТО(A373);ЕПУСТО(A340);ЕПУСТО(A380);ЕПУСТО(A386);ЕПУСТО(A403);ЕПУСТО(A403);ЕПУСТО(A423)); "Результат 5"; " Результат 6")
Здравствуйте. Можно ли как-то уменьшить формулу в части «епусто», при том что возможно добавление или уменьшение количества переменных по столбцу А, Excel - 2016.
Код
=ЕСЛИ(ИЛИ(ЕПУСТО(A16);ЕПУСТО(A22);ЕПУСТО(A27);ЕПУСТО(A33);ЕПУСТО(A40);ЕПУСТО(A45);ЕПУСТО(A53);ЕПУСТО(A59);ЕПУСТО(A66);ЕПУСТО(A73);ЕПУСТО(A80);ЕПУСТО(A87);ЕПУСТО(A94);ЕПУСТО(A100);ЕПУСТО(A107);ЕПУСТО(A113);ЕПУСТО(A120);ЕПУСТО(A126);ЕПУСТО(A132);ЕПУСТО(A138);ЕПУСТО(A143);ЕПУСТО(A149);ЕПУСТО(A155);ЕПУСТО(A161);ЕПУСТО(A168);ЕПУСТО(A174);ЕПУСТО(A180);ЕПУСТО(A190);ЕПУСТО(A196);ЕПУСТО(A206);ЕПУСТО(A212);ЕПУСТО(A218);ЕПУСТО(A224);ЕПУСТО(A234);ЕПУСТО(A240);ЕПУСТО(A247);ЕПУСТО(A253);ЕПУСТО(A261);ЕПУСТО(A268);ЕПУСТО(A275);ЕПУСТО(A280);ЕПУСТО(A285);ЕПУСТО(A292);ЕПУСТО(A299);ЕПУСТО(A305);ЕПУСТО(A310);ЕПУСТО(A316);ЕПУСТО(A323);ЕПУСТО(A329);ЕПУСТО(A334);ЕПУСТО(A346);ЕПУСТО(A358);ЕПУСТО(A367);ЕПУСТО(A373);ЕПУСТО(A340);ЕПУСТО(A380);ЕПУСТО(A386);ЕПУСТО(A403);ЕПУСТО(A403);ЕПУСТО(A423)); "Результат 5"; " Результат 6")
=ЕСЛИ((A16="")+(A22="")+(A27="")+(A33="")+(A40="")+(A45="")+(A53="")+(A59="")+(A66="")+(A73="")+(A80="")+(A87="")+(A94="")+(A100="")+(A107="")+(A113="")+(A120="")+(A126="")+(A132="")+(A138="")+(A143="")+(A149="")+(A155="")+(A161="")+(A168="")+(A174="")+(A180="")+(A190="")+(A196="")+(A206="")+(A212="")+(A218="")+(A224="")+(A234="")+(A240="")+(A247="")+(A253="")+(A261="")+(A268="")+(A275="")+(A280="")+(A285="")+(A292="")+(A299="")+(A305="")+(A310="")+(A316="")+(A323="")+(A329="")+(A334="")+(A346="")+(A358="")+(A367="")+(A373="")+(A340="")+(A380="")+(A386="")+(A403="")+(A403="")+(A423="");"Результат 5";" Результат 6")
=ЕСЛИ((A16="")+(A22="")+(A27="")+(A33="")+(A40="")+(A45="")+(A53="")+(A59="")+(A66="")+(A73="")+(A80="")+(A87="")+(A94="")+(A100="")+(A107="")+(A113="")+(A120="")+(A126="")+(A132="")+(A138="")+(A143="")+(A149="")+(A155="")+(A161="")+(A168="")+(A174="")+(A180="")+(A190="")+(A196="")+(A206="")+(A212="")+(A218="")+(A224="")+(A234="")+(A240="")+(A247="")+(A253="")+(A261="")+(A268="")+(A275="")+(A280="")+(A285="")+(A292="")+(A299="")+(A305="")+(A310="")+(A316="")+(A323="")+(A329="")+(A334="")+(A346="")+(A358="")+(A367="")+(A373="")+(A340="")+(A380="")+(A386="")+(A403="")+(A403="")+(A423="");"Результат 5";" Результат 6")
Да, с логикой непонятки. Если в других ячейках диапазона A16:A423, кроме перечисленных, никогда не предполагается ввод значений, то можно какую-то такую примитивную проверку первого уровня попробовать:
Код
=ЕСЛИ(И(СЧЁТЗ(A16:A423)=60; СЧИТАТЬПУСТОТЫ(A16:A423)=348); "Результат 6"; " Результат 5")
[p.s.]Или более изощренную формулу массива, также предполагающую НЕввод значений в неконтролируемые ячейки и опирающуюся на контрольные суммы номеров строк контролируемых и неконтролируемых ячеек диапазона A16:A423:[/p.s.]
Код
=ЕСЛИ(И(СУММ(СТРОКА(A16:A423)*НЕ(ЕПУСТО(A16:A423)))=12531; СУММ(СТРОКА(A16:A423)*ЕПУСТО(A16:A423))=77025); "Результат 6"; " Результат 5")
Повторяю, это формула массива, т.е. Ctrl+Shift+Enter. "Повалить" её, т.е. создать искусственно неправильную ситуацию, возвращающую, тем не менее, "Результат 6", в отличие от первой формулы уже не так просто.
Да, с логикой непонятки. Если в других ячейках диапазона A16:A423, кроме перечисленных, никогда не предполагается ввод значений, то можно какую-то такую примитивную проверку первого уровня попробовать:
Код
=ЕСЛИ(И(СЧЁТЗ(A16:A423)=60; СЧИТАТЬПУСТОТЫ(A16:A423)=348); "Результат 6"; " Результат 5")
[p.s.]Или более изощренную формулу массива, также предполагающую НЕввод значений в неконтролируемые ячейки и опирающуюся на контрольные суммы номеров строк контролируемых и неконтролируемых ячеек диапазона A16:A423:[/p.s.]
Код
=ЕСЛИ(И(СУММ(СТРОКА(A16:A423)*НЕ(ЕПУСТО(A16:A423)))=12531; СУММ(СТРОКА(A16:A423)*ЕПУСТО(A16:A423))=77025); "Результат 6"; " Результат 5")
Повторяю, это формула массива, т.е. Ctrl+Shift+Enter. "Повалить" её, т.е. создать искусственно неправильную ситуацию, возвращающую, тем не менее, "Результат 6", в отличие от первой формулы уже не так просто.Gustav
При изменении количества проверяемых ячеек "<>60" надо изменить на указанное в формуле количество. Работает с любыми значениями ячеек.scriptapplications
Сообщение отредактировал scriptapplications - Четверг, 18.08.2022, 14:14
И не забудьте перепроверить несколько раз, особенно после 400-й строки
Вот именно поэтому такой способ (перечисление ячеек, да и проверку количества или контрольной суммы тоже) использовать нельзя. Нужно понимать логику, а без нормального файла этого сделать нельзя - промежутки-то между ячейками разные
И пока никто не обратил внимание, что A403 дважды проверяется. Я ж не зря написал -
И не забудьте перепроверить несколько раз, особенно после 400-й строки
Вот именно поэтому такой способ (перечисление ячеек, да и проверку количества или контрольной суммы тоже) использовать нельзя. Нужно понимать логику, а без нормального файла этого сделать нельзя - промежутки-то между ячейками разные_Boroda_
_Boroda_, вот уменьшенный вариант (на 7 переменных, т.к. на все 60 долго делать). Логика в чём, в столбце «А» ставится вариант ответа и сравнивается со столбцом «С», а так как ответов может быть как 3 так 5, поэтому количество строк в каждом вопросе. Результат должен выводится только после заполнения всех ячеек по столбу «А» на против № вопроса столбца «В».
_Boroda_, вот уменьшенный вариант (на 7 переменных, т.к. на все 60 долго делать). Логика в чём, в столбце «А» ставится вариант ответа и сравнивается со столбцом «С», а так как ответов может быть как 3 так 5, поэтому количество строк в каждом вопросе. Результат должен выводится только после заполнения всех ячеек по столбу «А» на против № вопроса столбца «В».astashov_michail@tutby
И пока никто не обратил внимание, что A403 дважды проверяется
Сколько раз проверяется, это вопрос производительности, а количество ячеек в списке, как раз 60, поэтому результат работы формулы всё равно будет верным, даже если некоторые ячейки проверяются по нескольку раз. Подход к созданию формулы с перечислением ячеек неудачный и может быть источником ошибки, но, главное, чтобы формула работала правильно
_Boroda_,
Цитата
И пока никто не обратил внимание, что A403 дважды проверяется
Сколько раз проверяется, это вопрос производительности, а количество ячеек в списке, как раз 60, поэтому результат работы формулы всё равно будет верным, даже если некоторые ячейки проверяются по нескольку раз. Подход к созданию формулы с перечислением ячеек неудачный и может быть источником ошибки, но, главное, чтобы формула работала правильноscriptapplications
Сообщение отредактировал scriptapplications - Четверг, 18.08.2022, 14:40
я сразу догадался, что здесь не просто произвольные ячейки, потому файл и попросил
И я догадался Но просить не стал - замечание вынес И если бы остальные не подключились - ТС бы подумал над тем, что правила надо читать И соблюдать Serge_007
astashov_michail@tutby, признаю свою вину, меру степень, глубину. Постараюсь в следующий раз учесть ваши требования. Спасибо и Вам за помощь
astashov_michail@tutby, признаю свою вину, меру степень, глубину. Постараюсь в следующий раз учесть ваши требования. Спасибо и Вам за помощьastashov_michail@tutby