Страницы: 1
RSS
Доработка формулы
 
Добрый день!  
03.04. сего года обращался за помощью.  
Использую формулу предлоденную ikki, за что большое спасибо.  
Но пришлось в нее сделать еще 4 вложения( 2 ЕСЛИ и 2 ЕПУСТО).  
Получилось нечто...  
Помогите пожалуйста упростить формулу
 
у меня что-то совсем некрасиво получилось, но вообще-то работает.  
может, кто-то предложит формулу попроще...  
а пока (для ячейки D5) -  
 
=ЕСЛИ(ИЛИ(ТИП($C5)>1;$C5=0);" ";ЕСЛИ(ОСТАТ(ГОД(E$4)*12+МЕСЯЦ(E$4)-(ГОД($C5)*12+МЕСЯЦ($C5));36)=0;"дисп";ЕСЛИ(ИЛИ(ТИП($D5)>1;$D5=0);" ";ЕСЛИ(ОСТАТ(ГОД(E$4)*12+МЕСЯЦ(E$4)-(ГОД($D5)*12+МЕСЯЦ($D5));6)=0;"мо";""))))
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Спасибо. До ТИП я еще не добрался, а так думал вкладывать еще ЕСЛИ и перебрать тект, число, итд...  
Ну уж очень длинно получается.Если где промахнешься, то потом долго ошибку искать приходится.Вот и хочется упростить как-то...
 
=ЕСЛИ(И(ЕЧИСЛО($C5);ЕЧИСЛО($D5));ВЫБОР((ОСТАТ(РАЗНДАТ($C5;E$4-1;"m")+1;36)=0)*2+(ОСТАТ(РАЗНДАТ($D5;E$4-1;"m")+1;6)=0)+1;"";"мо";"дисп";"дисп");"")  
 
=ЕСЛИ(И(ЕЧИСЛО($C5);ЕЧИСЛО($D5));ВЫБОР((ОСТАТ(ДНЕЙ360($C5-ДЕНЬ($C5)+1;E$4);1080)=0)*2+(ОСТАТ(ДНЕЙ360($D5-ДЕНЬ($D5)+1;E$4);180)=0)+1;"";"мо";"дисп";"дисп");"")
 
{quote}{login=MCH}{date=09.04.2011 06:54}{thema=}{post}=ЕСЛИ(И(ЕЧИСЛО($C5);ЕЧИСЛО($D5));ВЫБОР((ОСТАТ(РАЗНДАТ($C5;E$4-1;"m")+1;36)=0)*2+(ОСТАТ(РАЗНДАТ($D5;E$4-1;"m")+1;6)=0)+1;"";"мо";"дисп";"дисп");"")  
 
=ЕСЛИ(И(ЕЧИСЛО($C5);ЕЧИСЛО($D5));ВЫБОР((ОСТАТ(ДНЕЙ360($C5-ДЕНЬ($C5)+1;E$4);1080)=0)*2+(ОСТАТ(ДНЕЙ360($D5-ДЕНЬ($D5)+1;E$4);180)=0)+1;"";"мо";"дисп";"дисп");""){/post}{/quote}  
 
(переписывая формулы в титрадочку) кто б сомневался, что можно проще и короче :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
=ЕСЛИ(СУММ($C5:$D5);ЕСЛИ(ОСТАТ(12*(ГОД(E$4)-ГОД($C5))-МЕСЯЦ($C5)+МЕСЯЦ(E$4);36);ЕСЛИ(ОСТАТ(МЕСЯЦ(E$4)-МЕСЯЦ($D5);6);"";"Мо");"Дисп");"")
 
Еще вариант, формула массива:  
=ЕСЛИ(И(ЕЧИСЛО($C5:$D5));ВЫБОР(СУММ((ОСТАТ(РАЗНДАТ($C5:$D5;E$4-1;"m")+1;{36;6})=0)*{2;1};1);"";"мо";"дисп";"дисп");"")
 
Спасибо!  
2 последних варианта посимпотичнее, чем тот которым пользуюсь.    
Однако вариант Михаила С ближе к телу ( меньше переписывать надо)  
Спасибо
 
{quote}{login=Don}{date=09.04.2011 08:03}{thema=}{post}меньше переписывать надо{/post}{/quote}  
а что, копипаст уже отменили?  
вот блин, даже не предупредили :(
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
после изящества МСН еще массив
 
а что, копипаст уже отменили?  
?????
 
я ввожу формулу РАЗНДАТ в таблицу чтобы вычислить возраст.в одном столбце дата рождения а в другой нужен возраст.и она не работает.просто вне таблицы в ячейках работает.а именно в таблице говорит что формула циклическая и она не будет правильно работать.как мне сделать чтобы она работала в таблице?  
подскажите пожалуйста.заранее спасибо.
 
Не ставить формулу в ячейку диапазона, на который она (формула) ссылается.  
Возможна непрямая ссылка, т.е. значение берется из других формул, которые ссылаются на диапазон с данной формулой.
Страницы: 1
Читают тему
Loading...