Страницы: 1
RSS
Объединить несколько комментариев в одну ячейку после проверки условий ЕСЛИ
 
Всем здравия!
Сразу извиняюсь за глупый вопрос, прошу тапками не кидать, а кинуть ссылку или подсказать решение, как правильно загуглить я не разобрался.
Итак вопрос: делаю лист отчета с проверкой логики заполнения. Справа от таблицы формулы и соответственно результат проверки выводится справа, в целом удобно, но задача немного поменялась и теперь надо, чтобы результат проверки условий писался под таблицей ("Логические условия выполнены" или не выполнены такие-то условия. Переписывать все формулы в одну и делать трехэтажную формулу не хочу, может как то можно собрать результаты со всего столбца вы одну ячейку?
Изменено: Sanja - 16.03.2026 13:04:59
 
Пустая таблица - так себе пример. Заполните ее данными и покажите желаемый результат на этих данных
Ну и название темы...
Какую ЗАДАЧУ Вы решаете? Не СПОСОБ, которым Вы пытаетесь ее решить.
Вот суть этой задачи и должна быть в названии Темы
Предложите (тут, в сообщении) новое название - модераторы изменят
Указав в названии темы конкретную функцию (в данном случае ЕСЛИ()) Вы ограничиваете решение только ей
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Предложите (тут, в сообщении) новое название - модераторы изменят
В том то и проблема, что я не могу сформулировать правильно вопрос :sceptic:
Цитата
написал:
Пустая таблица - так себе пример.
Сори, заполнить отчет не сообразил, по сути любые цыфры
 
Цитата
Kulibinslovoru написал: я не могу сформулировать
Что должны проверять Ваши формулы? Значение в ячейке должно быть меньше суммы пяти значений нижележащих? Или что?
Цитата
Kulibinslovoru написал: по сути любые цыфры
Ну тогда любые формулы Вас устроят  :)
Согласие есть продукт при полном непротивлении сторон
 
Добрый день. Из описания мало что понятно, а пример вообще никакой. Вы хотя бы на нескольких строках покажите какие то данные и желаемый результат.  
 
Нужно чтобы внизу под таблицей был общий вывод: "Не выполнены логические условия: и перечисления какие"
Ну или если все правильно, то "Логических ошибок нет"
Изменено: Kulibinslovoru - 14.03.2026 10:36:45
 
вот общий список логических условий
 
Чем ограничены в таблице диапазоны, сумма которых должна быть равна верхней ячейке этого диапазона? 0 как в строке 6 или 'пусто' как в строке 10? Какая логика при выборе количества строк для определения суммы?
Пример конечно опять как говорится 'на отвали'
Сообщение писал до файла Ворд
Вот это что значит
Цитата
65,66,67<=64
и подобное
Изменено: Sanja - 14.03.2026 10:46:20
Согласие есть продукт при полном непротивлении сторон
 
Весь отчет только цифры в диапазоне от 0 (или пусто, кто как заполнит) и до бесконечности. Суть проверить правильность заполнения отдельных строк, полный список условий в файле "Логические условия 3-ПС".
Половину формул прописал в столбце D, аналогичные должны были быть в столбце Е, но задача поменялась, такое решение не устроило, теперь надо, чтобы внизу был общий вывод "Не выполнены логические условия: ..."/"Логические условия выполнены.  
 
Цитата
написал:
Вот это что значит
строка 64 должна быть больше или равна строкам 65, 66 или 67 (в данном случае не сумма, а больше или равна любой из этих строк)
Логику для конкретной строки написать не сложно, не хотелось бы вот такую конструкцию из 27 условий писать в одну формулу.
Изменено: Kulibinslovoru - 14.03.2026 10:52:38
 
Структура условий нерегулярная, сводить все в одну формулу почти бессмысленно, можно сохранить формулы в столбце D, а ниже вставить формулу
Код
=ЕСЛИ(СУММПРОИЗВ(--(D5:D76<>""))>0;"Не выполнены логические условия";"Логические условия выполнены")
 
Спасибо огромное.
Уже ближе к желаемому результату. Но всё же стоит задача отображать список не выполненных условий.
Да я хотел оставить формулы в столбце D и просто скрыть его (будет еще сводная таблица с 20 подразделений). Мне на самом деле казалось удобным, то как я сделал изначально, но я толь исполнитель.
 
Могу предложить макрос (UDF)
Скрытый текст

Если версия Excel не поддерживает динамическкие массивы, то вводить в диапазон как формулу массива (!)
Согласие есть продукт при полном непротивлении сторон
 
если в вашем Excel в файле мб больше 1 листа, то отчего бы не сделать все проверки на отдельном листе, а результат собрать под формой?
(в примере все условия заполнять не стал, только часть)
Изменено: ВовавВова - 14.03.2026 11:33:14
познакомился с Excel
 
Цитата
написал:
сводить все в одну формулу почти бессмысленно
очень громоздко получается:
Код
=ЕСЛИОШИБКА(ЕСЛИМН(K5<>СУММ(K6:K9);"Значение строки 1 должно быть равно сумме строк со 2 по 5";K10<>0;"Не рекомендованные не должны быть приняты на службу";K11<>СУММ(K12;K14;K16;K18;K20;K22;K24;K26;K28;K29;K31);"Значение строки 7 должно быть равно сумме строк 8, 10, 12, 14, 16, 18, 20, 22, 24, 25, 27");...(все остальные условия)...;"Логические условия выполнены")
 
ВовавВова, о, это наверное именно то, что искал.
Осталось предложить нормальное название темы и можно вопрос закрывать)
Изменено: Kulibinslovoru - 14.03.2026 11:39:14
 
Цитата
написал:
отображать список
Например можно так.
Код
=ЕСЛИ(СУММПРОИЗВ(--(D5:D76<>""))>0;"Не выполнены логические условия  в строках "&СЦЕП(ЕСЛИОШИБКА(ИНДЕКС(A5:A76&", ";АГРЕГАТ(15;6;СТРОКА(A1:A72)/(D5:D76<>"");СТРОКА(A1:A72)));""));"Логические условия выполнены")
Для 2021+ можно покороче
Код
=ЕСЛИ(СУММПРОИЗВ(--(D5:D76<>""))>0;"Не выполнены логические условия  в строках "&ОБЪЕДИНИТЬ(", ";;ФИЛЬТР(A5:A76;D5:D76<>""));"Логические условия выполнены")
Изменено: Старичок - 14.03.2026 11:40:07
 
ну да, ну да... надо же общий вывод - прикладываю
познакомился с Excel
 
Цитата
написал:
нормальное название темы
как вариант - объединить несколько комментариев в одну ячейку после проверки условий ЕСЛИ
познакомился с Excel
 
Цитата
Цитата
написал:
Например можно так.
Если не сложно, можете объяснить логику для. Для общего развития интересно. Я уже на основе решения предложенного ВовавВова, начал делать строить формулу массива, а Ваше решения наверное более изящное.
 
Цитата
написал:
объединить несколько комментариев в одну ячейку после проверки условий ЕСЛИ
Просьба к модераторам переименуйте тему пожалуйста.
 
Цитата
написал:
можете объяснить логику
Добрый вечер. Да тут вся логика состоит из одной функции ЕСЛИ, зависящей от столбца D со своими логическими выражениями. При всех выполненных условиях в этом столбце все значения будут равны "", условие  СУММПРОИЗВ(--(D5:D76<>""))>0 выдает ЛОЖЬ и выводится значение "Логические условия выполнены". А если в каких то строках имеется любой текст отличный от "", то выводится значение - "Не выполнены..."  и далее функция СЦЕП(ЕСЛИОШИБКА(ИНДЕКС... выдает через запятую список строк с невыполненными условиями. Вкратце как то так.  
 
Кстати, у меня почему-то выводит только одну строку, только первое вхождение не выполненого условия
 
Еще вариан UDF
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Еще вариан UDF
Отличный вариант, но использование макросов не удобно:
1) отчеты заполняют разные филиалы, территориально достаточно разбросаны по области, люди зачастую просто юзеры и макросы попросту отключены.
2) на половине машин стоит Астра и соответственно ОпенОфис
А для себя сохраню, спасибо
 
Цитата
написал:
у меня почему-то выводит только одну строку
Добрый вечер. Попробуйте ввести формулу как массивную Ctrl+Shift+Enter.  
 
Старичок, добрый вечер. Прогорела идея на этапе испытаний, у большинства пользователей офис версии 2013 и там не работает ни Сцеп, ни ОБЪЕДИНИТЬ, ни Агрегат. Буду строить на СЦЕПИТЬ, ПОИСКПОЗ и ИНДЕКС. Сейчас появилось понимание как это сделать. Спасибо за помощь и поддержку.
 
Ну чтож, мое решение:
Код
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/(($O$5:$O$76=$M$3)*НЕ(СЧЁТЕСЛИ($A$78:A78;$J$5:$J$76)));$J$5:$J$76);"")
Осталось немного оформить внешний вид под желания руководства и будет все ОК.
Если у кого будут какие замечания, лучше советы, буду признателен.
Изменено: Kulibinslovoru - 19.03.2026 20:14:03
 
Kulibinslovoru, Добрый вечер. Вообще то функция АГРЕГАТ появилась в 2010, но это не главное. Самая большая проблема это функция СЦЕПИТЬ, ей нельзя задать в качестве параметра диапазон, нужно будет для каждой строки писать параметры, у вас в имеется 27 строк с условиями, плюс разделители между ними, то есть больше 50 параметров.
Есть вариант попроще, в нужную ячейку вставить формулу
Код
=ЕСЛИ(СУММПРОИЗВ(--(D5:D76<>""))>0;"Не выполнены логические условия  в строках";"Логические условия выполнены")
В соседнюю ячейку справа вставить формулу
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$5:$A$76;НАИМЕНЬШИЙ(ЕСЛИ($D$5:$D$76<>"";СТРОКА($A$1:$A$72));СТОЛБЕЦ(A1)));"")
(формула массива), и протянуть вправо. После этого "причесать" результат, Для ячеек со второй формулой назначить формат ##, подогнать ширину столбцов и сделать заливку белым цветом для всех формул. Будет выглядеть как одна ячейка.
 
Цитата
Kulibinslovoru:  Ну чтож, мое решение: ... Если у кого будут какие замечания, лучше советы
Kulibinslovoru,  если и так используете доп столбцы, то одним больше другим меньше значения не имеет, но решение упростить может)
Условное форматирование: Зачем дублировать логику в нём если это всё есть в доп столбцах?   ...и правил будет несколько меньше)

пс: доп столбцов  в файле не больше чем было)
Страницы: 1
Читают тему
Наверх