Примерно половина моей работы — проектирование и написание разнообразных табличных отчетов (другая половина — это как ввести эти данные, в сумме это автоматизирует некий бизнес-процесс). К сожалению, я не смог найти внятного изложения принципов информационного дизайна для таблиц и посему решил восполнить этот пробел, насколько это в моих силах.
Статья из нашей корпоративной wiki.
1. Адресаты
Прежде чем рассуждать о том, как должны выглядеть табличные отчеты, определимся с их адресатами, с группой целевых пользователей. Это важно сделать вначале, поскольку инфодизайн для различных групп существенно разнится.
а. Линейные исполнители, или Заинтересованные пользователи. Скажу сразу, это и есть моя целевая группа, и все принципы инфодизайна как раз и ориентированы на этих пользователей. Обычно это экономисты, диспетчеры, плановики и т.п. исполнители, работающие с первичными данными и выполняющие их обработку и анализ. Важными особенностями этой группы пользователей является:
Итак, это наша целевая группа. Она хороша тем, что немногочисленна и можно напрямую собрать пожелания. И к тому же предпочитает данные в виде таблиц, а не графиков и диаграмм. Большинство отчетов в виде таблиц, генерируемых инфосистемой, ориентировано именно на эту группу.
Но рассмотрим и остальные группы и выделим их особенности.
б. Праздношатающиеся, или Незаинтересованные пользователи. К этой группе относятся читатели журналов, посетители сайтов и т.п. неопределенный круг лиц. Сюда же относятся слушатели докладов и участники конференций — даже если они и заинтересованы в информации, то все равно не готовы тратить на это много сил. Собственно, инфодизайн, обращенный к незаинтересованным пользователям, описан в многочисленных пособиях «Как сделать эффективную презентацию», в пособиях по веб-дизайну, именно на них рассчитано большинство инфографики.
Об инфодизайне для этой группы пользователей я писать не буду, написано и без того много, желающих отсылаю к следующим сайтам и блогам:
http://datatodesign.ru/
http://edwardtufte.ru/envisioning-information/
http://www.edwardtufte.com/tufte/
http://themissinggraph.wordpress.com/
и дальше по ссылкам оттуда.
в. Топ-менеджмент. Руковолдители верхнего уровня существенно отличаются от линейных исполнителей (хотя бы тем, что меньше проводят времени за компьютером), и их мышление и, соответственно, запросы к инфодизайну отличаются тоже:
В общем, все перечисленные особенности отчетов для руководства говорят о том, что такие отчеты лучше всего верстать в полуручном режиме.
г. Проверяющие органы. Есть еще одна важная группа пользователей отчетности — налоговики и прочие проверяющие органы. Отличает их то, что в основном это наши враги — ищут, что у нас не так, и как бы оштрафовать. Есть идея сделать отчеты для них максимально неудобными — т.е. формально выполнить их требования, но максимально при этом затруднить их работу (мы тут говорим не о фальситфикации данных, а только о форме их представления). По зрелом размышлении от этого стоит отказаться: специальные отчеты для проверяющих предполагают, что для работы используются какие-то другие отчеты, тем самым мы вынуждены поддерживать вдвое больше отчетов в нашей инфосистеме. Обычно затраты на это превышают те сомнительные выгоды, что обещают «неудобочитаемые» отчеты для проверяющих.
2. Чем мы можем управлять в табличном отчете
Таблица это заголовок ее, потом сама таблица, и какой-то заключительный текст (часто просто подписи, или вообще ничего). Чем мы можем управлять при разработке дизайна табличного отчета?
Ниже мы рассмотрим эти элементы более подробно.
3. Экран и принтер
Для разработки правильного дизайна надо помнить, что с отчетом будут работать в двух вариантах: просматривая его на экране компьютера и распечатывая его на бумаге. Так что нам стоит делать отчет таким, чтобы он хорошо выглядел как на экране, так и на бумаге. С практической точки зрения это означает вот что: какими бы цветами мы ни раскрасили наш отчет, распечатываться он будет скорее всего на черно-белом принтере формата А4 с многократно перезаправленным картриджем. На бумаге все будет оттенками серого, причем иногда почти невидными оттенками.
Кроме того, большие отчеты будут печататься на нескольких листах в высоту и нескольких листах в ширину. Как правило, по ширине они склеиваются (или пропорционально умещаются, чтобы уместились на одном листе в ширину), а по высоте просто подшиваются вместе. Для удобства стоит на каждом листе печатать заголовки столбцов, а также печатать номер страницы и общее количество страниц в отчете. Если в одном отчете есть несколько таблиц одна за другой, то с печатью заголовков столбцов могут быть проблемы.
При просмотре таблицы на экране проблемы в чем-то сходные: экран обычно меньше страницы и при скроллинге вниз или вправо заголовки столбцов и начала строк уезжают. Решение проблемы — закрепление на экране верхних строк и начальных столбцов, что опять же неудобно, если в отчете несколько таблиц в одном окне.
Отчет на экране живет минуты, пока с ним работают; отчет на бумаге живет от дней до месяцев. Данные за один и тот же период в разное время могут быть разными — какие-то на момент формирования отчета были еще не введены в инфосистему, позже какие-то ошибки были исправлены (или наоборот, добавлены). Поэтому очень полезно, если на распечатке видны дата и время формирования отчета. У нас это просто является стандартом для всех отчетов, кроме тех, чья форма установлена внешними документами.
4. Шрифт, форматы и выключка
Таблица отличается от текста тем, что текст читается по строкам, а таблица больше по столбцам. При этом большую чать табличных данных составляют числа, а не слова. Шрифты с засечками семейства Антиквы (типа Times New Roman) хороши тем, что визуально объединяют строку, делая текст более гладким и удобным для чтения. Это очень хорошо для книг, полных текста, но совершенно неудобно для таблиц, которые читаются скорее по вертикали — тут засечки явно мешают. Для таблиц больше подходят гротески, шрифты без засечек (типа Arial).
Большинство данных в таблице — числа, а наиболее частая операция при чтении таблицы — сравнение двух чисел, а сравнивать числа удобно, когда они расположены одно под другим. Из этого следуют такие правила:
Традиционо рекомендуется для облегчения сравнения чисел печатать их моноширинным шрифтом (типа Courier New). По моему опыту, это не лучший совет: разделение групп разрядов уже делает числа легко сравниваемыми (на практике мы не сталкиваемся с такими числами, чтобы их ширина записи сильно различалась при одинаковом числе знаков), а моноширинные шрифты сжирают экранное пространство.
Что касается горизонтальной выключки нечисловых данных, то тут действуют такие правила:
Для выделения важных данных в таблице можно использовать жирный шрифт, но почти никогда — курсив (я молча предполагаю, что выделение относится ко всей ячейке целиком, а не к некоторым знакам в тексте ячейки).
Что касается использования шрифтов, то тут действуют такие правила:
5. Состав данных таблицы
Как было сказано в п. 1.а, колонки таблицы должны отражать логику данных. К примеру, если у нас в двух колонках даны плановые и фактические данные, то почти наверняка исполнителю важно видеть отклонение — план-факт или процент выполнения плана; если выводим в одном отчете и суммовые, и количественные данные, то почти наверняка нужно их отношение — средняя цена или средняя себестоимость, что оно там по смыслу.
Форма отчета примерно в равной степени определяется как задачей отчета, так и структурой данных в инфосостеме. Иногда бывает, что структура данных в инфосистеме не совсем адекватно отражает структуру реальности, и встает вопрос, как сделать отчет: ориентироваться на структуру данных в инфосистеме или на некие эвристические правила («обычно у нас это соответствует тому, исключения редки»), то предпочтитение надо отдать структуре данных, оставив задачу сопоставления с реальностью (интерпретации) пользователю. Реальность может поменяться и ранее сделанные предположения о поведении реальности перестанут быть верными. Если мы пытаемся всякими хитрыми алгоритмами «найти смысл» в данных (что делает пользователь при составлении отчета вручную), то мы можем не заметить, что при изменении реальности наш отчет выдает правдоподобные, но неверные данные.
Несколько полезных правил для таблиц:
6. Границы ячеек
Визуальное разделение информации на строки и столбцы, собственно, и создает таблицу — когда-то на печатной машинке можно было печатать таблицы, тщательно подсчитывая пробелы. Сейчас мы можем просто печатать границу ячейки в виде линии — это проще, но есть и оборотная сторона: эти линии не несут содержательной информации и представляют собой информационный шум. Вот несколько правил для границ ячеек:
При большом желании можно вообще отказаться от вертикальных границ просто увеличив ширину ячеек — тогда большие пустые места визуально разделяют данные на столбцы. К сожалению, это возможно только при небольшом количестве столбцов, что бывает редко. Этот прием используется больше в журнальной инфографике.
Если нам надо сделать одноуровневую таблицу (т.е. все строки несут примерно одинаковый смысл, без строк подитогов и расшифровок), то мы можем использовать полосатую таблицу, выводя строки через одну на белом и цветном фоне.

С таких таблицах соседние строки с другим фоном выступают своего рода очень широкими границами. Такая раскраска очень удобна для широких таблиц, поскольку позволяет легко двигаться глазами вдоль строки.
В таких таблицах важно правильно подобрать цвет фона, чтобы он был достаточно контрастен как к белому, так и к черному (цвету шрифта). Надо еще помнить, что при распечатке этот цвет станет серым, так что имеет смысл подбирать тон фона таким, чтобы он нормально смотрелся как на экране, так и в распечатке. Ниже приведены еще три раскраски той же полосатой таблицы, дающие при распечатке одинаковый серый тон, чуть более плотный, что дает таблица выше.



Серый цвет лучше не выбирать, поскольку он используется для диалоговых окон и на экране это может ввести пользователя в заблуждение.
Полосатые таблицы имеют тот недостаток, что не так удобно сравнивать соседние числа в одном столбце. Этот недостаток есть следствие достоинства полосатой таблицы — сильного визуального выделения строки, так что применять этот метод стоит с осторожностью.
7. Методы выделения: фон и цвет
Таблицы содержат много информации и важную или необычную информацию стоит визуально выделить. Основные виды выделяемой информации:
Мы имеем несколько способов выделения, которые можно между собой комбинировать:
Можно использовать сочетание этих способов: красный цвет для индикации ошибок в данных (цвет шрифта, если ячейка, и фона, если ошибка относится ко всей строке).
Наиболее важно применение методов выделения в многоуровневых таблицах, когда есть наиболее подробные данные и их подитоги разных уровней. На практике применяются двух- и трехуровневые таблицы, поскольку большее число уровней неудобно для анализа. Обычно такие данные анализируются наложением фильтров при формировании отчета, т.е. Фактически весь набор возможных фильтров и представляет верхний уровень отчета.
Ниже приведены примеры двух трехуровневых отчетов.


Здесь видны основные принципы построения многоуровневых таблиц:
На второй таблице зеленые строки также имеют выделение жирным шрифтом. Это может быть удобно или неудобно — если мы сформируем те же отчеты без отображения третьего уровня, то обилие жирного шрифта в отчете станет визуальным шумом:


Тут видно еще одна особенность: в многоуровневой таблице нижний уровень должен иметь белый фон — это для распечатки на бумаге.
Эти приемы инфодизайна можно перенести и на остальные таблицы, в которых мы хотим что-то выделить. К примеру:
Вариантов таких выделений может быть очень много — главное определить заранее, какие критически важные данные нам надо выделять.
Отдельно хочется сказать о цветовых схемах. Если хотите со всего маху дать в глаз пользователю, то посмотрите на те цвета фона, что предлагает Word для выделения текста. Или на те цвета, что расположены первыми на панели цветов Excel. Если ваш отчет называется «Джунгли в гости к нам», то самое оно.
Если же вы заботитесь об эргономике ваших отчетов, то рекомендую приглушенные оттеночные тона. В иллюстрациях к этой статье я выбирал те цвета, которые не утомляют пользователя. Способ подобрать удачное сочетание цветов прост: прикиньте, одела бы ваша любимая женщина одежду в цветах вашего отчета? Можно у нее просто спросить :-)
8. Расшифровки и инструменты анализа
Отчет на экране, в отличие от отчета на бумаге, должен представлять собой инструмент анализа, из которого в идеале можно дойти до первичных данных. Т.е. по двойному щелчку на ячейке таблицы должен формироваться отчет (или предлагаться на выбор набор отчетов), расшифровывающий данные в ячейке более детально. Если в точности эту цифру расшифровать легко не получается (какой-нибудь хитрый отбор), то желательно дать расшифровку, содержащую нужные данные вкупе с какими-либо посторонними данными, но в такой форме, чтобы пользователь мог их разделить. К примеру, если мы выводим в ячейку объем продаж за период всем клиентам, за исключением одного-двоих самых крупных, то как расшифровку мы можем прицепить оборотку по контрагентам (тогда пользователю надо будет просто игнорировать строки контрагентов, не входящих в исходную цифру отчета), или реестр документов отгрузки (это более подробные данные и может оказаться, что их очистить пользователю сложнее).
Другой важный элемент анализа — возможность наложения фильтров и переключения режимов при формировании отчета. Время жизни отчета на экране измеряется минутами, и это в основном за счет того, что один и тот же отчет формируется многократно с разными фильтрами. Часто реализовать такие фильтры очень несложно, зато пользователь получает дополнительный инструмент анализа. Но надо помнить, что время жизни отчета на бумаге измеряется днями, неделями и месяцами, так что обязательно при формировании отчета выводить в нем информацию о наложенных фильтрах.
9. Пример одного идеально продуманного табличного отчета
Я знаю один пример практически идеального табличного отчета — «Интерактивная оборотно-сальдовая ведомость» Сергея Барышникова в 1С:Бухгалтерии 7.7. Он формируется как обычная оборотно-сальдовая ведомость, но слева от кода счета расположен плюсик. Пр щелчке по нему предлагается выбрать вид расшифровки, после чего в строках расшифровки есть такие же плюсики, и эти данные можно расшифровывать дальше, и все это в пределах одной экранной формы отчета. На приведенной ниже иллюстрации я развернул обороты по счету 20.10 сначала по подразделениям, потом по видам номенклатуры, затем «Литье 12Х18Н9ТЛ» я развернул по статьям затрат, а статью Основные материалы развернул по корреспондирующим счетам.

То есть мы все больше и больше углублялись в анализ одной строки. То, что на каждом шаге мы можем выбирать варианты расшифровки, делает этот отчет изумительно гибким. (Тут стоит отметить, что эта гибкость возможна потому, что отчет опирается на структуру данных, для которой существует тщательно разработанная теория — на бухучет)
Я хотел бы обратить внимание на раскраску отчета. Чисто формально она противоречит тому, что я говорил выше о многоуровневых отчетах — здесь затенение фона идет не по нарастанию агрегации, а наоборот, по нарастанию детализации данных. В этом отчете это выглядит естественно и недавно я понял, на какой визуальной метафоре он основан — на карте океана:

То, о чем я писал раньше, скорее было основано на карте суши, где более темным цветом выделяются вершины.
Как бы то ни было, и в инфодизайне табличных отчетов существуют свои произведения искусства.