Страницы: 1
RSS
Как в формуле укоротить сравнение с помощью ЕСЛИ
 
Здравствуйте. Делаю себе автоматически формирующийся календарик на месяц для распечатки. В процессе создания наиболее оптимизированной формулы я столкнулся с тем, что в некоторых местах число месяца становилось либо меньше единицы, либо больше количества дней в месяце. Избавиться от этого удалось лишь с помощью функции ЕСЛИ, которая сильно удлинила формулу. Подскажите, пожалуйста, есть ли возможность сделать её короче? Уж больно мне эта "гусеница" режет глаз.
 
Mirten,  добрый день, лучше пока модераторы не пришли предложить новое название темы согласно правилам форума...а то так могут не помочь.
Цитата
2.1. Название темы должно отражать смысл проблемы. Темы с названиями "Помогите", "Help", "Срочно", "Нужен макрос" - плохая идея. Модераторы имеют право переименовать, удалить или закрыть такие темы без предупреждения.
Не бойтесь совершенства. Вам его не достичь.
 
a.i.mershik, к сожалению, не нашёл как изменить название темы. Но впредь буду знать, спасибо.
 
Цитата
Mirten написал:
не нашёл как изменить название темы
Цитата
a.i.mershik написал:
предложить новое название темы
это значит написать новое название в сообщении тут
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо.

Новое название темы: "Как в формуле укоротить сравнение с помощью ЕСЛИ".
 
Сбегайте СЮДА все придумано уже
Лень двигатель прогресса, доказано!!!
 
Mirten, я сейчас поменяю название, но тогда ждите варианты ТОЛЬКО с применением указанной Вами функции. А ведь не исключено, что Ваша проблема решается другим способом.
Формулируя название, отталкивайтесь не от конкретных функций, а от проблемы.
 
Юрий М, спасибо. Хотя решение вариант по ссылке Сергея тоже хорош, но вопрос всё равно остался. Меня давно напрягают длинные сравнения в ЕСЛИ, хочется узнать, есть ли возможность их делать короче.
 
Цитата
Mirten написал:
но вопрос всё равно остался
какой вопрос у вас использована один раз ЕСЛИ
Лень двигатель прогресса, доказано!!!
 
Сергей, если коротко, то у меня есть вот такая формула:
Код
=ЕСЛИ(И(ДЛИННАЯ_ФОРМУЛА>0;ДЛИННАЯ_ФОРМУЛА<=ДЕНЬ(КОНМЕСЯЦА($A$1;0)));ДЛИННАЯ_ФОРМУЛА;"")
Получается, что ДЛИННАЯ_ФОРМУЛА здесь аж три раза во всей своей длине, что сильно удлиняет общую формулу и затрудняет понимание. Хочется узнать, если способ сделать общую формулу короче и более читаемой.
 
Если короче, то используйте именованную формулу.
 
Mirten, если особо не разбираться в нюансах, то наверное лучший вариант - это узкоспециализированная UDF, где все проверки происходят внутри кода, НО
Цитата
Юрий М написал:
ждите варианты ТОЛЬКО с применением указанной Вами функции
а посему я пас)) можете глянуть мою старую тему - может что-то подчеркнёте для себя  ;)
Изменено: Jack Famous - 19.02.2018 12:37:09
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
в диспетчере имен обьявите ДФ
=ДлиннаяФормула (вместо слов ДлиннаяФормула скопируйте сюда свою длинную формулу)
и тогда Ваша формула приобретет вид:
Код
=ЕСЛИ(И(ДФ>0;ДФ<=ДЕНЬ(КОНМЕСЯЦА($A$1;0)));ДФ;"")
я таким же способом определил в Диспетчере имен имя ПредДн в итоге формула такая
Код
=ПредДн+ЕСЛИ(ДЕНЬНЕД(ПредДн+1;2)=СТОЛБЕЦ();1;)
но она не подходит к ответу о ЕСЛИ потому что не сводится исключительно к ЕСЛИ
придумаете как назвать тему. - выложу файл с этой формулой.
Изменено: Ігор Гончаренко - 19.02.2018 12:45:29
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Юрий М, про именованные формулы не знал. Спасибо, пригодится.
 
А все-таки, о названии... Придут люди искать решение о днях месяца - а нет такой темы...
 
Ігор Гончаренко,благодарю.
 
Цитата
про именованные формулы не знал
интересно, а откуда в Вашем файле в Диспетчере имен появилось имя Месяцы?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
vikttur написал:
Придут люди искать решение о днях месяца - а нет такой темы...
если ТС и модераторы не против, то «Создание календаря на заданный месяц»
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ігор Гончаренко, сам же и сделал. Просто я до этого диспетчер использовал исключительно для выпадающих списков.

Jack Famous, vikttur, так вопрос-то был именно в укорачивании формулы. Календарь создать я и так смог, и даже формула меня устраивала. Меня не устроило то, что в сравнении с помощью ЕСЛИ Длинная_Формула была аж три раза во всей своей длине, чем сильно уменьшала понятность итоговой формулы. Сравнениями я пользуюсь сравнительно часто и в разных случаях, просто в этот раз я работал над календарём.

Цитата
Сергей написал:
Сбегайте  СЮДА  все придумано уже
Кстати, обнаружил недочёт указанной по ссылке формулы. Так как мне нужны только рабочие дни, то я делаю 5 столбцов. В результате, апрель 2018 у меня остаётся с полностью пустой первой неделей. Моя же формула в таком случае эту неделю пропускает, начиная календарь сразу с 02.04.2018 г.
 
Цитата
Mirten написал:
вопрос-то был именно в укорачивании формулы
с нынешним названием темы она кроме вас никому не поможет, т.к. вряд ли человек, создающий календарь (а именно это здесь рассматривается) будет искать решение по тэгам "как укоротить условие ЕСЛИ" - в этом-то и чуть названия, если очень кратко.
С другой стороны, если отбросить сам календарь и рассматривать варианты "короткой" записи длинных вложенных функций, то может всё и корректно. На суд модераторов…
Изменено: Jack Famous - 19.02.2018 14:17:31
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Читают тему
Наверх