Табличные отчеты в Tableau. Часть 2. Нумерация страниц
В этом посте мы продолжим говорить о табличных отчетах в Tableau, обсуждая, как создать нумерацию страниц в Tableau. Сегодня мы расскажем вам, как создать нумерацию страниц, используя приведенный ниже пример.
Для этого решения требуется четыре рабочих листа: один для таблицы, один для числового дисплея, один для стрелки влево и один для стрелки вправо. Мы начнем с таблицы, настроим ее, далее перейдем к стрелкам и, наконец,настроим отображение.
В этом примере мы будем использовать набор данных Sample — Superstore.
Шаг № 1: Построим базовую таблицу
Перетаскиваем пилюлю Customer Name на полку Rows. Далее отсортируем по убыванию, используя sum of Sales.
Далее необходимо создать меры, которые будут в таблице. Затем мы будем использовать Measure Names и Measure Values для построения таблицы.
Наша таблица будет включать общий объем продаж, общую прибыль, коэффициент прибыли и общее количество заказов. Продажи и прибыль являются базовыми показателями. Для коэффициента прибыли мы будем использовать следующее вычисляемое поле:
// Profit Ratio
SUM([Profit])/SUM([Sales])
для показателя общего количества заказов:
// Total Orders
COUNTD([Order ID])
Теперь перенесем пилюлю Measure Names на полку Columns и Measure Values на карточку Text. Нужно, чтобы SUM(Sales), SUM(Profit), Profit Ratio и Total Orders находились в карточке Measure Values. Вот так:
Шаг № 2: Построим структуру для нумерации страниц
Сначала необходимо создать параметр, который будет указывать на количество отображаемых строк, назовем его rows to show. Для этого примера мы указали 15 строк, но мы можем изменить это позже при необходимости.
После этого, создадим второй параметр под названием Page number — номер страницы (он пригодится позже). И установим значение Current value в параметре — 1. Вот так:
Начнем с вычисления, которое назовем Customer Name | Index:
// Customer Name | Index
INDEX()
Это вычисление необходимо для использования в других вычислениях.
Следующее вычисление назовем Page | Customer Name | Index, который будет вычислять какие строки показывать на какой странице:
// Page | Customer Name | Index
((([Customer Name | Index] — 1) — (([Customer Name | Index] — 1) % [rows to show]))/[rows to show]) +1
Теперь создадим вычисляемое поле, которое будет вычислять, какую страницу показывать. Далее мы создадим вычисление для параметра страницы, которое назовем Page Number | TF :
// Page Number | TF
[Page | Customer Name | Index] = [page number]
Далее, перетаскиваем Page Number | TF на карточку Filters и выберем TRUE. Теперь мы увидим 15 строк на первой странице.Благодаря параметрам rows to show и page number. Вот такую визуализацию мы получим:
Шаг № 3: Построим стрелку влево
Далее мы создадим стрелку влево. Для этого создадим новый рабочий лист, назовем его Left Arrow и добавим ‘◄’ на карточку Text. Далее необходимо выровнять текст по центру.
Затем создадим вычисление с именем Page | —:
// Page | —
IF [page number] = 1
THEN 1
ELSE [page number] — 1
END
Далее перетаскиваем пилюлю Page | — на карточку Detail.
Далее, необходимо создать еще два вычисления: TRUE, где вычисление равно TRUE. И FALSE равно FALSE. Перетаскиваем эти вычисления на карточку Detail.Теперь, нужно отключить подсказки. Вот, что должно получиться:
Шаг № 4: Построим стрелку вправо
Для этого создадим новый лист, который назовем Right Arrow и добавим «►» на карточку Text. Также выровняем текст по центру.
Затем создадим вычисление, которое назовем [Page | +]:
// Page | +
IF [page number] = FLOOR({COUNTD([Customer Name])}/[rows to show]) +1
THEN FLOOR({COUNTD([Customer Name])}/[rows to show]) + 1
ELSE [page number] + 1
END
Перетаскиваем Page | +, TRUE, and FALSE на карточку Detail. И также отключим подсказки.
Шаг № 5: Построим навигатор страниц
Навигатор страниц является наиболее сложным компонентом на дашборде. Нам нужно отобразить выбранную страницу, другие (ближние) страницы и сделать табличный отчет интерактивным.
Для начала добавим пилюлю Customer Name на карточку Detail. Отсортируем по убыванию по Sum of sales. Затем перетаскиваем Customer Name | Index на полку Columns. Изменим эту меру на Dimension. Изменим табличное вычисления, для этого выберем Specific Dimensions и Customer name.
Добавим текст к этой визуализации, показывающий номер страницы. Мы также установим для выбранного номера страницы более темный цвет и более жирный шрифт.
Для создадим два вычисления: Label Page Number для выбранной страницы и Label Page Number Not для невыбранных страниц.
// Label Page Number
IF [Page Number | TF]
THEN [page number]
END
// Label Page Number Not
IF NOT [Page Number | TF]
THEN [Page | Customer Name | Index]
END
Перетащим их на карточку Text, а также изменим их на Dimensions (это поможет с форматированием чисел). Изменим табличные вычисления и выберем Specific Dimension и Customer Name для обеих мер.
Далее, отредактируем карточку текста. Нам нужно два измерения поместить на одной линии. Для Label Page Number Not выберем светло-серый цвет, шрифт Tableau Book, размер 12. Для Label Page Number выберем черный цвет, шрифт Tableau Semibold, размер 12.
Вот, что у нас получится:
Далее создадим вычисление, которое назовем Page n | 0:
// Page n | 0
([Customer Name | Index] % [rows to show]) — 1
Изменим его на dimension и перетащим его на карточку Filters. Убедимся, что используются Specific Dimensions и выбрано Customer Name. Затем выберем 0 в настройках фильтра. Вот, какая визуализация должна получиться.
Далее настроим диапазон: нижнюю и верхнюю границы. Мы сделаем это с помощью двух вычислений, которые назовем threshold | bottom и threshold | top.
// threshold | bottom
IF [page number] < 3
THEN 1
ELSEIF [page number] > FLOOR({COUNTD([Customer Name])}/[rows to show]) — 1
THEN FLOOR({COUNTD([Customer Name])}/[rows to show]) — 3
ELSE [page number] — 2
END
// threshold | top
IF [page number] > FLOOR({COUNTD([Customer Name])}/[rows to show]) — 1
THEN FLOOR({COUNTD([Customer Name])}/[rows to show]) + 1
ELSEIF [page number] < 3
THEN 5
ELSE [page number] + 2
END
И, наконец, мы создадим вычисление которое определит верхнюю и нижнюю границы:
// theshold | tf
[Page | Customer Name | Index] >= MIN([threshold | bottom])
AND
Примечание: значения здесь жестко запрограммированы, поэтому всегда будут отображаться 5 страниц.
Добавим threshold | tf на карточку Filters. Отредактируем табличное вычисление и выберем Specific Dimensions и Customer Name. Затем установим фильтр для True:
Теперь нужно отформатировать визуализацию, удалив разделители строк и скрыв заголовки. Далее выровняем текст по центру. Теперь добавим TRUE и FALSE на карточку Detail.
Шаг № 6: Построим дашборд
Добавим таблицу на дашборд, затем добавим горизонтальный контейнер под таблицей. Добавим стрелку влево, дисплей и стрелку вправо в контейнер. Установим контур вокруг контейнера и добавим цвет фона для каждой из стрелок.
Шаг № 7: Параметры Action
Первым параметром Action будет стрелка вправо. Измените page number с помощью Page | + без агрегации при выборе.
Вторым параметром Action будет для левой стрелки. Изменим page number с помощью Page | — без агрегации при выборе.
Следующий параметр Action будет для отображения. Измените page number с помощью Label Page Number Not без агрегирования при выборе.
Теперь, нам нужно сделать 3 отдельных filter actions, по одному для каждого листа с действием. Ниже представлены настройки filter actions для стрелки влево. Сделаем это и для отображения и для стрелки вправо.
Итак, вот что получилось у нас:
В следующих статьях мы рассмотрим изменение количества строк в таблице.
Источник: https://tessellationtech.io/table-pagination/
Хотите узнать, как провести анализ и сделать отчеты быстро?
Нам доверяют: