Первая проблема всегда в задаче, а вторая - в данных. Мне ни разу не довелось встретить человека, который сказал бы: "Мне понятна задача, у меня есть все нужные данные, но я не знаю, что мне с ними делать"! Как правило, либо непонятен состав необходимых данных, либо то, где или как эти данные взять. Таким образом, ситуация, когда все нужные данные есть, но представлены они в непригодном для работы виде, комична и трагична одновременно.
Пример 1. Данные бухгалтерии
Я всегда считал, что в бухгалтерии... считают, считают все и много, а потому все эти объемистые массивы чисел, номеров статей и прочего должны по определению иметь форму представления, подходящую в первую очередь для машинной обработки. Как же я ошибался!
В прошлом году мне предоставили напечатанный на 160 страницах документ, шаблон которого приведен ниже. Я попросил электронный вариант, и он оправдал мои ожидания (вот уж действительно!) "чуть более, чем полностью". Я то как-то надеялся, что это просто какая-то хитрая выгрузка для печати была, но нет, на экране моему мгновенно ставшему испуганным взору открылся лист Excel с документом в той самой форме, которую я уже по достоинству оценил на "твердом" носителе.
Присмотримся:
Пример 1. Данные бухгалтерии
Я всегда считал, что в бухгалтерии... считают, считают все и много, а потому все эти объемистые массивы чисел, номеров статей и прочего должны по определению иметь форму представления, подходящую в первую очередь для машинной обработки. Как же я ошибался!
В прошлом году мне предоставили напечатанный на 160 страницах документ, шаблон которого приведен ниже. Я попросил электронный вариант, и он оправдал мои ожидания (вот уж действительно!) "чуть более, чем полностью". Я то как-то надеялся, что это просто какая-то хитрая выгрузка для печати была, но нет, на экране моему мгновенно ставшему испуганным взору открылся лист Excel с документом в той самой форме, которую я уже по достоинству оценил на "твердом" носителе.
Присмотримся:
- Фильтр по исполнителю сделать нельзя - он ставится вместе с фильтром по заказчику, потому что умному Excel не может и в голову прийти, что две переменные могут размещаться в одной колонке. Только эти две переменные объединены таким образом -почему или зачем?
- Ладно, ну не сделали отдельную колонку для номера извещения, но можно же было собрать все, что относится к одному извещению под одной строкой с его номером?! Но нет, одинаковые номера извещений встречаются по несколько раз.
- На самом деле, все это было технично исправлено с использованием макросов. Настоящим испытанием стали ошибки и специфические приемы форматирования, наложившие отпечаток на данные. Плотность ошибок просто зашкаливала, что не позволяло нормально перегнать данные в Access, форматирование с помощью вставки в ячейки множества пробелов искривляло отчеты при печати. Правильная форма представления ("Заказчик", "Исполнитель" и "Реквизиты извещения" в отдельных колонках или еще лучше - "Заказчик", "Исполнитель", "Номер извещения", "Дата извещения", "Номер контракта" и "Дата контракта" в отдельных колонках), помимо прочего, позволила бы многих ошибок избежать - Excel предлагает вариант значения из уже заполненных ячеек в колонке после набора нескольких букв в пустой ячейке.
- Вообще, смешивание всех реквизитов документа (и, как мы увидим дальше, не только) в одной ячейке - это одна из наиболее широко распространенных болезней, само существование которой, на мой взгляд, противоречит здравому смыслу. Если человек хоть как-то знает Excel и делопроизводство, то ему наверняка приходилось хотя бы раз сортировать данные по датам. Такая сортировка - это простейший вариант обработки, но в документе представленного формата выполнить ее корректно нельзя.
Пример 2. База данных по чрезвычайным ситуациям
Таблица Access, более 16 000 записей показанного ниже вида.
Снова присмотримся:
- Если в предыдущем случае можно было решить многие проблемы с помощью простых макросов, то здесь без анализа предложений на естественном языке с разбиением на поля с важной информацией ничего сделать нельзя. Проще говоря, вообще нельзя сделать ничего! Да, все реквизиты документа в одном поле - это цветочки! Полное художественное описание опасности, чрезвычайной ситуации или угрозы таковой с цифрами и временем в одном поле типа MEMO - вот где высший пилотаж! В некоторых записях объем текста в этом поле превышает 2 600 знаков. Помнится, у меня тезисы были меньшего объема.
- Никакой анализ этой чрезвычайно полной информации произвести нельзя, она представлена в виде для этого непригодном, ее можно только читать.
- Людей из бухгалтерии оправдывает хотя бы то, что им нужно было ту информацию печатать с того же листа, в который они ее забивали, а здесь-то у разработчиков базы данных какая была мотивация (и, кстати, квалификация)?
Выводы:
- Всегда держите данные в таком формате, который максимально удобен для машинной обработки. Особенно это касается больших массивов данных. Выделяйте общие классы и признаки отдельно, разделяйте дату и время, разделяйте реквизиты документа и т. д.
- Помните, что сделать из документа в формате, удобном для обработки, документ, который красиво выглядит при печати, можно практически всегда. Превратить документ, который красиво выглядит, в набор данных для анализа часто нелегко, а иногда и просто невозможно. Поэтому первичной и наиболее важной формой представления данных является форма, пригодная для машинной обработки, а не отформатированный отчет в PDF с запретом копирования, с логотипом и рюшками.
- Обратите внимание: грамотный выбор формы представления данных также позволяет избежать многих ошибок при вводе.