Рвав-рвав, с вами социально-ответственный собака Смайл!
В связи с прошедшим Днем рождения, а также в рамках постоянной работы над собой, мы рады представить вам свою очередную разработку — отчет c кодовым названием «Мониторинг питомцев».
Отчет построен по данным российской базы чипированных животных, а данные, представленные в отчете — общего характера.
Собака Смайл выражает благодарность коллеге хозяина Дмитрию Власову за помощь в создании процедуры парсинга исходных данных.
Описание разработки, за исключением процедуры парсинга, представлено ниже.

Отчет реализован при помощи DAX и Power Query, при этом:
- Источником данных для отчета является «Web» («Интернет»), то есть web-станицы, соединенные в определенной последовательности, и представленные при помощи функций на уровне Power Query в табличном виде.
- Географические данные, используемые в отчете, представляют собой «очищенные» позиции, то есть эти данные отличаются от оригинала. Очистка данных производилась большей частью вручную, на уровне DAX, поскольку у человеков просто неисчерпаемая фантазия.
Рвав-рвав, отступление из серии «Накипело».
Собака Смайл узнал очень много в процессе обработки данных, оказывается, столица нашего государства может писаться следующим образом:
— «MOSKOV» — тут слов нет, мало того, что английский, так еще и с 2-мя (!) ошибками;
— «ГРАД МОСКОВСКИЙ» — куда уж нам без пафоса, так и хочется сказать: «Человек, у тебя, вообще-то, друг потерялся…"в качестве фидбэка получил информацию, что это такой Жилой комплекс, но тогда еще хуже: «Как люди должны это понять?»;
— «ТВЕРСКАЯ УЛИЦА» — таки-да, товарищи, это тоже «МОСКВА» (Смайл понял из контекста), но мы же с вами и так все в курсе, где это… И ничего, что такая же улица, как минимум, в Петербурге есть (рядом с Таврическим садом, если что).
- Все показатели рассчитаны при помощи мер.
Разработка содержит 5 листов:
- Лист «Общие данные» — общая информация о потерянных и найденных питомцах по России и странам мира.
- Лист «ГЕО — Мир» — детальная информация по странам мира, за исключением России, с выделением ТОП-5 в рейтинге.
- Лист «ГЕО — регионы России» — детальная информация по регионам России, с выделением ТОП-5 в рейтинге.
- Лист «Породы» — детальная информация по конкретным породам питомцев, с выделением ТОП-5 в рейтинге.
- Лист «Подробности» — персонифицированная информация о конкретном питомце, с указанием номера чипа / клейма для облегчения его идентификации.
Используемые элементы:
- Скрывающаяся панель фильтров (стандартный функционал).
- Кнопки.
- Иконки.
- Иконки, интегрированные в стандартный элемент визуализации «Срез».
- В качестве элементов визуализации используются: «Карточка», «Диаграмма дерева», «Кольцевой график», «Карта», «Многострочная карточка», «Диаграмма ленты».
Процесс разработки:
- Получение данных из веб-источника, и их обработка.
«…Подготовка данных для отчета осуществляется с помощью Power Query. На входе получаем URL к узловой странице с потерянными или найденными животными. Узловые страницы ведут на по страничное представление списков потерянных или найденных животных в формате «html». На каждой странице содержится одна или несколько таблиц с карточкой животного. С помощью преобразования Power Query и написанного ряда функций Power Query данные загружаются в модель.
Ключевые функции:
— Web. Contents — для загрузки данных;
— List. Accumulate — для прохождения и обработки в «цикле» каждой страницы и поиска последней заполненной страницы."
Исходные данные собираются в 2-х таблицах — «Потерянные питомцы» и «Найденные питомцы».
- Создана таблица «Субъекты России» — справочник федеральных округов, субъектов и административных центров России.
- Создана таблица «Время года» — справочник по временам года, имеющий ссылку URL на соответствующую иконку.
- Создана таблица «Статус питомца» — справочник по состоянию питомца, имеющий ссылку URL на соответствующую иконку.
- Создана таблица «Меры» — техническая таблица, созданная для удобства, складываем туда меры (по старинке), хоть теперь можно их группировать при помощи каталогов.
- Создана таблица «Вид питомца» — справочник по градации питомцев, имеющий ссылку URL на соответствующую иконку.
- Создана таблица «Пол питомца» — справочник, содержащий пол питомца, также имеющий ссылку URL на соответствующую иконку.
Рвав-рвав, на этом работы с Power Query завершены.
- На уровне модели данных создана таблица «Календарь» — базовая таблица, определяющая набор дат для расчета.
- Создана таблица «Объявления» — таблица, содержащая консолидированные данные по питомцам, с текущей меткой их статуса.
- Создана таблица «Геопозиция» — справочник, содержащий очищенные географические данные, о которых упоминалось выше.
- Следующим этапом является проверка связей получившейся модели данных, и их корректировка в случае необходимости. Схема модели представлена ниже:

- Затем при помощи DAX начинаем формировать нужные аналитические разрезы, например, производим расчет количества случаев потери и нахождения питомцев.
- Последний шаг разработки — это дизайн, отчет построен на использовании стандартных элементов.
Особенности разработки:
- В связи с разнообразием в вариациях обозначения географических данных, периодически необходимо дополнять справочник вручную, собака Смайл будет этим по возможности заниматься, как и, собственно, обновлением отчета.
- Для размещения иконок непосредственно в элементе «Slicer» («Срез»), изображения должны быть доступны по URL. В данном случае, они размещены в облаке.
Рвав-рвав, всем хорошей погоды!
Ваш Смайл