Думаю, эта проблема будет интересна всем, кто так или иначе связан с реализацией лекарственных средств.
История вопроса.С начала февраля 2010 года началась регистрация цен на жизненно необходимые и важнейшие лекарственные средства. Регистрацию проводит Росздравнадзор РФ. На начало мая 2010 года уже зарегистрировано 6281 наименование. Естественно что такой объем данных крайне проблематично обрабатывать в ручную. Хочется создать некое подобие базы данных, которую потом использовать в качестве опорно-справочной информации для работы самых разных бухгалтерских и складских программ. Первый шаг на этом пути - получение указанных данных в формате Excel (о DBF мы даже и не мечтаем). Видимо народные чаяния дошли до ушей наших чиновников и где то с начала марта они стали публиковать вместе с приказом в формате PDF и файл Excel с данными регистрации. Вот счастье-то какое, но радоваться оказалось рано! Дело в том что в файле Excel цены проставлены в текстовом формате и никаким образом математические операции делать с ними нельзя. Учитывая, что там бывает до 800 строк записей, в голове начала бродить мысль как автоматизировать процесс преобразования "текстовых" цен в "числовые" и свести затраты человеко/часов к минимуму.
И так, рассмотрим решение проблемы на реальном примере.
Берем последний приказ РЗН № 3572 от 29.04.2010 года. Там в приложении есть файл 3572.xls с табличкой на 104 строки. Привожу фрагмент содержимого
Как видите цена действительно не в цифровом формате.
Первым делом меняем точку в значении цены на запятую. Для этого выделяем столбец с ценой и производим замену всех точек на запятую.
Жмем "Заменить все" и получаем результат.
Теперь надо отделить цифровые значения от текста и конвертировать их в цифры. По содержимому цены видно, что цифры от букв всегда отделяет пробел, это свойство мы и используем. Найдем позицию пробела для всех строк, см. формулу в строке формул на рисунке.
Далее, зная позицию пробела, можно отобрать все левые символы до позиция пробела, см. строку формул на рисунке.
Теперь осталось только преобразовать текст в числовой формат с помощью функции "ЗНАЧЕН", см. строку формул на рисунке.
Для тех, кто уже "набил руку" в Excel, не составит труда объединить все вышеописанные шаги в одну формулу, см. строку формул на рисунке.
Файл с приведенными выше формулами можно скачать для примера.
Желаю всем успехов в преодолении последствий непрофессионализма вышестоящих чиновников!!!
Комментариев нет:
Отправить комментарий