Страницы: 1
RSS
Составление формулы из текста в разных ячейках
 
Мне хотелось бы понять, как составить формулу СУММЕСЛИМН из частей, записанных текстом в разных ячейках. Дело в том, что мне необходимо использовать эту формулу на листе много раз, при этом много громоздких условий остаются одними и теми же (их хотелось бы зафиксировать в виде текста в отдельной ячейке), а меняется только одно последнее условие.

Например, в ячейке A1 сконструировать текст:
СУММЕСЛИМН('Реестр'!$J:$J;'Реестр'!$F:$F;"16.01.2017";
А в ячейке A2, где нужен результат формулы СУММЕСЛИМН, написать что-то вроде:
=СЛЕПИТЬФОРМУЛУИЗ(A1; " 'Реестр'!$I:$I; C2)");
---------------------------------
Заранее благодарю!
 
Цитата
fd8 написал:
как составить формулу СУММЕСЛИМН из частей, записанных текстом в разных ячейках
Обычным способом никак. Можно использовать макрофункцию EVALUTE(ВЫЧИСЛИТЬ), но это уже с поддержкой макросов
Согласие есть продукт при полном непротивлении сторон
 
вы бы пример приложили, есть предположение что вы пошли не тем путем
Лень двигатель прогресса, доказано!!!
 
Цитата
Sanja написал: Можно использовать макрофункцию EVALUTE(ВЫЧИСЛИТЬ)
... и это будет медленнее, чем цельная формула в ячейке.
 
В ячейке A2 при условии применения формулы =СЦЕПИТЬ(A1; " 'Реестр'!$I:$I; C2)") получится результат в виде 2512 'Реестр'!$I:$I; C2) , где число 2512 - это то, что получилось в ячейке A1. Думаю, это не то, что Вам нужно. Попробуйте применить форматирование ячейки A1: "Другие числовые форматы" -> "(все форматы)" и далее в графе "Тип" что-то вроде #" м/сут", где # - это любое число. После чего кавычка и пробел, далее - то что Вам нужно добавить и закрывающая кавычка.
Подробнее здесь: http://www.planetaexcel.ru/techniques/9/72/
 
Прошу прощения, но последний ответ, похоже, вообще не про то :) Я же писала не "СЦЕПИТЬ", а "СЛЕПИТЬФОРМУЛУИЗ" - придуманная мной формула, которую хотелось бы заменить чем-то правильным.
Про 2512 что-то я вообще не поняла: в А1 у меня просто текст в формате "текст". Откуда там 2512 появится? В ячейке это выглядит как-то так (в файле у меня вместо ячейки А1 - ячейка D1):

<сорри, с картинкой не вышло, но она и не сильно здесь нужна - во вложении все есть>

Во вложении пример файла. На листе "Подготовка свода" все эти хитрые формулы, а на листе "Целевая сводная таблица" - сводная таблица по листу "Подготовка свода".
В жизни общая часть формулы в ячейке D1 выглядит гораздо длиннее, т.к. условий существенно больше.
В общем-то, пока готовила пример, поняла, что можно жить и с такой одинаковой, пусть и длинной, предварительной частью. Но если сможете предложить более красивый вариант решения задачи, буду благодарна.  
Изменено: fd8 - 02.03.2017 14:45:01
 
а не проще дополнить исх данные столбцом и сразу делать сводную  
 
Мне нужно сохранить фильтры, на основании которых я проставляю эту статью Ф130, чтобы потом эти правила перенести в БД.
В целом я получила ответ на свой вопрос, что так просто слепить формулу нельзя. Всем большое спасибо!
Изменено: fd8 - 02.03.2017 15:00:31
 
так в ваш исходник и добавляем Ф130 для сводной
 
Проблема в том, что таких статей Ф130 около 30 штук, и написать формулу ЕСЛИ в дополнительном столбце реестра, включающую условия для каждой статьи, будет крайне проблематично... К тому же условие состоит по крайней мере из трех компонент - наименование номенклатуры, тип услуги и статус. Могут потребоваться и другие условия, о которых еще не знаю...

Собственно, этой промежуточной таблицей я и пытаюсь решить вопрос со сложными множественными фильтрами.  
 
но писАть формулу с множеством ДВССЫЛ() ни чуть не легче чем с если, при этом если отдельно соорудить таблицу соответствия - можно будет обойтись и ВПРом для подстановки.
 
Мне нужно будет затолкать в формулу по меньшей мере 237 условий ЕСЛИ
О_О
По-моему, многовато... Да, будет одна формула, это плюс. Но как ее отлаживать, если что? По сути мы ведь всю мою таблицу с условиями внесем в условие ЕСЛИ.
 
я имел ввиду такую модель с таблицей соответствия, но вообще-то мы далеко ушли от темы.
Изменено: Vik_tor - 02.03.2017 15:58:31
 
Все гениальное просто :))
Vik_tor, спасибо! Чтобы выполнить ВПР по условиям из трех колонок, я создала служебную колонку с формулой "СЦЕПИТЬ", где для каждой строки сцепила значения из трех колонок. Добавила эту колонку в реестр и в таблицу с условиями - и делаю по ней ВПР. Работает!
Возможно, для этой задачи тоже есть более хорошее решение? :)
Страницы: 1
Наверх