четверг, 2 июня 2011 г.

Совсем плохой текст


Даже если год может быть 2008 и 2007, а в номере счета могут попадаться цифры "7" и "8", эта проблема решаема, правда формула существенно усложнится. Зато какая красивая!

=ДАТАЗНАЧ(ПСТР(C2;НАЙТИ("/";C2;1)+1;ЕСЛИ(ЕОШ(НАЙТИ("08";C2;1)-НАЙТИ("/";C2;1));НАЙТИ("07";C2;1)-НАЙТИ("/";C2;1)+1;НАЙТИ("08";C2;1)-НАЙТИ("/";C2;1)+1)))

Здесь для определения года добавлена конструкция функций ЕСЛИ и ЕОШ которая определяет ошибку если год не 2008 и возврашает номер позиции уже по двум цифрам "08" или "07".

Задача еще более усложняется, если нет никакой уверенности, что в номере счета не попадется сочетание "08" или "07". Но и здесь решение может быть найдено. Например, исключить из определения позиции номер счета в принципе. Для этого функция НАЙТИ должна искать не с первой позиции текста, как это было раньше НАЙТИ("/";C2;1), а от слеша, который разделяет номер счета и дату (выделено красным), и функция будет выглядеть так:
НАЙТИ("/";C5;НАЙТИ("/";C5;1)), а в общем конструкция станет еще "красивше".
=ДАТАЗНАЧ(ПСТР(C5;НАЙТИ("/";C5;НАЙТИ("/";C5;1))+1;ЕСЛИ(ЕОШ(НАЙТИ("08";C5;НАЙТИ("/";C5;1))-НАЙТИ("/";C5;НАЙТИ("/";C5;1)));НАЙТИ("07";C5;НАЙТИ("/";C5;1))-НАЙТИ("/";C5;НАЙТИ("/";C5;1))+1;НАЙТИ("08";C5;НАЙТИ("/";C5;1))-НАЙТИ("/";C5;НАЙТИ("/";C5;1))+1)))
Тем не менее эта формула работает и имеет перспективу дальнейшего развития в плане добавления условий на поисковые позиции.

В общем, многое зависит от Вашей фантазии, упорства и желания.

Назад

Комментариев нет:

Отправить комментарий