Рада, что вас, искателей красоты так много - 11К! Мои вы звёздочки ⭐️
Желаю не останавливаться в ваших стремлениях сделать аналитику юзер-френдли.
Всем вдохновения, успехов и счастливых глаз заказчиков в новом году 🦌
Коллеги занимаются строительством DWH и семантических моделей, а рисует отчеты Машенька 😍.
Специально для вас и с согласования заказчика, перенесла дизайн на рандомный датасет.
📎 PBIX сами знаете где прячется
Как просто верстать отчёты в Power BI и не страдать
Присоединяйтесь к нашему вебинару 17 декабря в 19:00 по МСК, где мы за 60 минут в прямом эфире создадим отчёт, который будет не только ровным, но и сочным, а главное — удобным для восприятия!
Спикер вебинара, Мария Гришина — ведущий BI аналитик в ООО Салаир (РЖД) и автор телеграмм-канала «Power BI Design» — раскроет секреты грамотной верстки, поделится полезными приёмами и лайфхаками.
Вы узнаете, как правильно расставлять акценты, использовать цветовые схемы и шрифты так, чтобы ваши отчёты вызывали восторг у коллег и руководства.
➡️ Зарегистрироваться: https://clck.ru/3FCnoK
Animated SVG =
// Calculate the maximum utilization from the 'Table'
VAR _Percentage =INT(IF([% Выполнения]>=1,1,[% Выполнения]) *100 )
// Format the utilization percentage for display
VAR _PercentageFormate = FORMAT(_Percentage, "#0")
// Calculate the width of the progress bar based on the utilization percentage
VAR _ProgressBar = _Percentage
// Construct the SVG image with dynamic values
RETURN
"data:image/svg+xml;utf8," &
""
Сложность этой svg заключается в генерации остатка серых прямоугольников. Мне красиво, но пока не оптимально скорее всего.
1000. SVG KPI Sales =
VAR __Measure = INT([% Выполнения]*100)
VAR __Color =
SWITCH(
TRUE(),
__Measure<=50, "#FF6B6B",
__Measure<=70, "#FFB000",
"#00B097"
)
VAR __FirstSVG = "data:image/svg+xml,"
VAR __SwitchPart=
SWITCH(
TRUE(),
__Measure<10, _10&_20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<20, __10&_20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<30, __10&__20&_30&_40&_50&_60&_70&_80&_90&_100,
__Measure<40, __10&__20&__30&_40&_50&_60&_70&_80&_90&_100,
__Measure<50, __10&__20&__30&__40&_50&_60&_70&_80&_90&_100,
__Measure<60, __10&__20&__30&__40&__50&_60&_70&_80&_90&_100,
__Measure<70, __10&__20&__30&__40&__50&__60&_70&_80&_90&_100,
__Measure<80, __10&__20&__30&__40&__50&__60&__70&_80&_90&_100,
__Measure<90, __10&__20&__30&__40&__50&__60&__70&__80&_90&_100,
__Measure<100, __10&__20&__30&__40&__50&__60&__70&__80&__90&_100,
__10&__20&__30&__40&__50&__60&__70&__80&__90&__100
)
RETURN __FirstSVG & __SwitchPart &_Text& __EndSVG
P. S. : Наверное, это как-то можно запихнуть в REPT(), но я не могу сморщить мозг так, чтобы избежать цикла.
Половина лучших предложений по работе никогда не попадают в открытый доступ. Сначала их закрывают через личные контакты, HR-базы и закрытые каналы.
Sparkles собирает топовые вакансии для аналитиков ещё до их публикации на агрегаторах.
- Прямые контакты работадателя.
- Ежедневные подборки вакансий от джуна до сеньора.
Подписывайся, чтобы не упустить работу мечты ✨