🔥 Как показать статусы сотрудников за ГОД в одной матрице Power BI? (spoiler: обычные способы сломаются)
Представьте: вам нужно вывести статусы команды (Занят/Свободен/Отпуск) на каждый день года. Стандартная матрица Power BI упрётся в лимит в 1000 точек данных (строки × столбцы).
Обычное решение: Дробить на месяцы/кварталы, плодить страницы, терять общую картину.
Моё решение: Один компактный SVG-визуал, который динамически рисует календарь-раскраску для любого периода!
👉 Как это работает (магия DAX + SVG):
// Динамически генерируем SVG для дней месяца
SVG KPI =
VAR DaysInMonth = ... // Дни выбранного месяца
VAR Statuses = ... // Статусы сотрудника (цвета: 🟦 Занят, 🟩 Свободен, ⬜️ Отпуск)
VAR Bars = COUNTROWS(Statuses)
VAR RectWidth = 12 // Ширина столбца дня
...
RETURN
"data:image/svg+xml,..." & // Генерируем SVG код!
Что делает код:
1️⃣ Автоматически считает дни в месяце (даже февраль високосный!)
2️⃣ Рисует цветной бейдж для каждого дня (1 день = 1 прямоугольник в SVG)
3️⃣ Масштабируется под любой период (не лимит в 1000 точек!)
Результат в отчете:
[🟦 🟦 🟦 🟩 🟩 ⬜️ ⬜️ 🟦 🟩 🟦 ...] // 28-31 компактных квадратика!
→ Плюсы:
Вместо 100 строк — одна ячейка с календарём!
Видна плотность задач, отпуска, простои;
Работает на версиях Power BI с сентября 2023+.
Фишки реализации:
❤️Динамическая ширина SVG: Подстраивается под число дней;
❤️Кастомизация цветов: Меняйте палитру в SWITCH();
❤️Гибкие отступы: Регулируйте пробелы между днями (RectStep).
Осторожно!
📌SVG не поддерживает тултипы «на лету» (но можно добавить всплывающую подсказку с другой страницы);
📌Для кросс-фильтрации по клику на «день» нужен дополнительный костыль. И он есть 🤪
🔥 А вы сталкивались с лимитом в 1000 точек? Делитесь кейсами в комментах!