Обновить
256K+

Визуализация данных *

Облекаем данные в красивую оболочку

85,4
Рейтинг
Сначала показывать
Порог рейтинга

Быстрая визуализация управленческих данных Digital Q.Sensor BI

Для эффективного управления руководителю нужна цельная картина бизнеса в реальном времени, а не разрозненные графики и таблицы.

Как быстро и легко создавать управленческие дашборды на основе любых корпоративных данных, а при необходимости развернуть полноценный ситуационный центр для мониторинга компании «здесь и сейчас», покажем на вебинаре 19 июня в 14:00.

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

На вебинаре в прямом эфире продемонстрируем, как легковесная система Digital Q.Sensor BI предлагает современный подход к визуализации и управлению данными, превращая их в стратегический актив и инструмент для принятия управленческих решений.

О чем поговорим на вебинаре:

14:00 - 14:10 Коротко о платформе визуальной аналитики Digital Q.Sensor BI

14:10 - 14:20 Создаем дашборды при помощи no-code инструментов. Используем интуитивный no-code редактор

14:20 - 14:30 Создаем графики и диаграммы при помощи ИИ. Визуализируем данные по текстовому описанию

14:30 - 14:40 Ситуационный центр в вашей компании. Что такое ситуационный центр и как быстро настроить метрики и алертинг

14:40 - 14:50 Вопросы и ответы

Вебинар будет интересен:

  • Руководителям, функциональным менеджерам компаний

  • Аналитикам, продакт-менеджерам, тим-лидам

  • Разработчикам, архитекторам, дата-специалистам

Зарегистрироваться на мероприятие можно по ссылке

Теги:
+3
Комментарии0

Импорт данных

Иногда возникает задача вставить данные из одной электронной таблицы в другую. Причём так, чтобы изменения в первой тут же отражались во второй, т.е. копипаст не подойдёт.

В Google Sheets для решения этой задачи есть функция IMPORTRANGE:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abc123/edit";"Лист1!A:Z")

Про это не пишут в документации, но первым параметром вместо длинного урла достаточно передать идентификатор документа (часть между /d/ и /edit):

=IMPORTRANGE("abc123";"Лист1!A:Z")

Если исходные данные хранятся в виде таблицы, имеет смысл использовать табличную ссылку:

=IMPORTRANGE("abc123";"Сотрудники[#ALL]")

Если в исходной таблице поменяется порядок столбцов, ваши формулы сломаются. Надёжнее вместо целой таблицы импортировать конкретный столбец:

=IMPORTRANGE("abc123";"Сотрудники[ФИО]")

На практике удобно в первой строке ввести заголовки необходимых столбцов (например: ID, ФИО, Должность), а во второй протянуть формулу, которая подтянет их содержимое:

=IMPORTRANGE("abc123";"Сотрудники["&A1&"]")

Такой способ:

  1. Импортирует меньше данных и работает быстрее.

  2. Переживает добавление и перестановку столбцов в исходной таблице.

  3. В случае переименования таблицы или столбцов в исходном документе сразу покажет ошибку.

Теги:
+4
Комментарии0

Разработчик сделал небо с самолётами у себя на потолке — теперь он видит точный момент, когда рейсы пролетают над его домом. Парень живёт рядом с аэропортом и постоянно слышит самолёты. В какой‑то момент он решил вывести всё воздушное движение прямо на потолок комнаты. Система использует данные ADS‑B и в реальном времени показывает местоположение, высоту и скорость каждого самолёта над домом.

Теги:
+10
Комментарии3

Всем привет! Коллеги из бизнес-практики BI GlowByte подготовили репортаж по следам прошедшей конференции Fine Day Online, где эксперты из Галамарта, Уралсиба, ОТП и FanRuan говорили о том, что реально происходит внутри больших BI-команд.

Если коротко: дата-каталог на DataHub своими руками, Shadow DWH как болезнь свободного self-service, пиксельный марафон для разработчиков и грабли при миграции FineBI 6.0 на 7.0.

Красная нить всех докладов: данные – есть, BI – внедрен, дашборды – сияют, но бизнес продолжает гадать на кофейной гуще работать на ощущениях. 

Кстати, для тех, кто любит не только почитать, но и послушать, есть ссылочки на выступления. 

Теги:
+4
Комментарии0

Представлен проект anitabi - это карта реальных мест из японских аниме. Anitabi собирает локации прямо в Google Maps: станции, улицы, магазины, школы и целые районы, где происходили сцены из сериалов и фильмов.

Можно открыть тайтл, найти точку и буквально повторить кадр из мульта в реальной жизни. Там уже тысячи локаций по всей Японии, а база пополняется комьюнити вручную. Люди буквально сидят и сравнивают кадры из аниме с реальными улицами. А ещё у проекта открытый API.

Теги:
+1
Комментарии2

Представлена космическая онлайн-карта из произведения «Проект „Аве Мария“». Там показаны основные локации и можно посмотреть Линию Петровой.

Теги:
+5
Комментарии1

Вы когда-нибудь задумывались о том, насколько связен наш мир? Насколько сложно пересечь границу между странами? И вообще сколько их, этих граничных переходов? А насколько хорош аэропорт Вашего города - в сколько стран или направлений из него можно улететь? А есть ли паромы и периодические водные маршруты между двумя государствами? А ходят ли поезда из одной страны в другую, или ветка уже давно заброшена?

Это кажется простой задачей, пока мы находимся в Европе или, к примеру, в Северной Америке. Но начинает быть очень интересным исследованием, когда мы переместимся в Африку, Центральную Азию или, положим, в Южную Америку. А в Карибском бассейне вдруг окажется, что этим маленькие острова и не связаны настолько хорошо между собой.

А если включить в это уравнение закрытость границ, визовые и паспортные ограничение, то внезапно окажется, что задачка-то и не из лёгких.

Именно поэтому и возник проект Портулан: portolanmap.com. Чтобы показать доступность территорий для внешнего мира. Ведь хотелось бы, чтобы границы были только у нас в головах, но на деле нам приходится считаться с границами государств и территорий.

Заглавный экран карты
Заглавный экран карты

Аэропорты, терминалы паромов, сеть железных дорог, включая международные. Визы, посольства, базовая информация по странам. Всё вместе и в очень залипательном формате.

Под капотом - Python-pipeline для сбора и нормализации данных, Svelte/MapLibre GL на фронтенде, статическая раздача через Cloudflare без бэкенда и баз данных.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Представлен открытый проект tokenspeed (онлайн-версия), который показывает, насколько быстро на самом деле обрабатываются разные количества токенов в секунду. Все бенчмарки локальных LLM показывают пропускную способность: «47 токенов/с на M3», «180 токенов/с на 4090», «500 токенов/с на Groq». Но если вы не видели потоковую передачу токенов с такой скоростью, эти цифры трудно понять. tokenspeed — это терминальная утилита, которая передаёт фиктивные токены с любой заданной вами скоростью, так что вы можете увидеть, как эти цифры выглядят на самом деле.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Приглашаем на вебинар: Как превратить BI в единое окно управления компанией: кейс компании «Синтека» на платформе Luxms BI

Дата: 14 мая, четверг
Время: 15:00

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

На вебинаре команда компании «Синтека», которая использует Luxms BI не только для создания аналитических решений для своих клиентов, но и как основу внутренней управленческой аналитики, расскажет, как они подошли к решению этой задачи у себя.

🔸Расскажем о том, что обычно остается за кадром: как готовятся данные, как выравнивается логика показателей и как выстраиваются связи между функциями — от маркетинга и продукта до финансов и поддержки

🔸Обсудим, как собрать данные из разных контуров в одну систему координат и договориться о едином подходе к метрикам

🔸Разберем конкретные шаги и решения, которые помогли превратить разрозненные данные в связанную систему

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

📍Предварительная регистрация
Вам придет напоминание, а после вебинара пришлем ссылку на запись:)

Теги:
Рейтинг0
Комментарии0

Режимы фильтрации

Удобнейшая фича таблиц в Google Sheets — возможность фильтровать данные по различным условиям. Но есть одна проблема. Если документом пользуется несколько людей, злоупотребление этой функцией приводит к хаосу. «Кто опять изменил таблицу?»

Решение: использовать режимы фильтрации.

Создать режим фильтрации можно двумя способами:

  • Выбрать в главном меню «Данные / Создать режим фильтрации»

  • Нажать на калькулятор рядом с названием таблицы и выбрать «Создать режим фильтрации»

Плюсы такого подхода:

  1. Режим фильтрации не меняет исходную таблицу.

  2. Его можно сохранить под удобным именем.

  3. На сохранённый режим можно дать ссылку.

Режимы фильтрации позволяют создать несколько представлений одной таблицы и удобно переключаться между ними.

В Excel есть похожая функция, находится в меню «Вид / Представление листа».

Теги:
Рейтинг0
Комментарии0

🏆 «Круги Громова» в Топ-100 ИТ-лидеров – прошу поддержать!

Вместе с Сергеем Громовым, основателем «Кругов Громова», мы стали номинантами рейтинга Топ-100 ИТ-лидеров GlobalCIO за вклад в российскую ИТ-отрасль — выпуск крупнейших на рынке независимых обзоров российских ИТ-систем: BI, ETL, MDM, ESB, RPA, Data Quality, Self-Service, AI и других.

Для нас это ещё одно признание экспертизы в ИТ-сообществе 💙

Поддержать можно до 4 мая — голосование доступно для участников сообщества GlobalCIO со статусом ИТ-руководителя:

👉 Проголосовать за меня https://globalcio.ru/top100/profile/50507/

👉 Проголосовать за Сергея Громова https://globalcio.ru/top100/profile/11219/

Будем благодарны каждому голосу и вашей поддержке! 🙏

Теги:
Всего голосов 8: ↑0 и ↓8-8
Комментарии0

Разрываем шаблоны: строим график с разрывом всего на 65 строк

Иногда нужно скрыть часть графика используя линию обрыва, чтобы показать данные с сильно различающимися значениями. Например, когда один язык программирования популярнее остальных в разы.

Самые ходовые решения этой проблемы — разорванная ось (broken axis) или отдельные бины для аномалий. Проблема в том, что в Matplotlib нет готовой «кнопки» для создания гистограммы с разрывом. Но это легко* собирается руками на уровне нескольких осей.

Вот три рабочих подхода — выбирайте под свою задачу.

  1. Официальный пример из документации Matplotlib. 🔗 Ссылка на гайд. Отлично работает, когда выбросы зашкаливают по одной оси (X или Y). В посте разбирается как раз такой случай: гистограмма с волнистой линией обрыва.

  2. Библиотека brokenaxes делает почти всё сама. Устанавливается стандартно через pip. Вариант для тех, кто не хочет углубляться в ручную настройку.

  3. Логарифмическая шкала (часто — самый простой выход) Если выбросы строго положительные и отличаются на порядки, иногда достаточно двух строк: plt.xscale(«log») или plt.yscale(«log»). Никаких разрывов, никакой ручной работы — при этом график остаётся чистым и читаемым.

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.path import Path


def plot_broken_axis(
    labels: list[str],
    values: tuple[float, ...],
    ylim_low=(0, 12),
    ylim_high=(20, 25),
    **kwargs,
):
    """
    Строит график с разрывом оси.
    Валидирует входные данные и инкапсулирует логику отрисовки.
    """
    if len(labels) != len(values):
        raise ValueError("Длины labels и values не совпадают")

    fig, (ax_high, ax_low) = plt.subplots(
        nrows=2, figsize=(7, 4), gridspec_kw={"height_ratios": [1, 2]}
    )

    # Настройки столбцов
    kwargs.setdefault("color", "skyblue")
    kwargs.setdefault("edgecolor", "black")
    kwargs.setdefault("alpha", 0.85)

    ax_low.bar(labels, values, **kwargs)
    ax_high.bar(labels, values, **kwargs)
    fig.subplots_adjust(hspace=0.0)

    # Настройка осей
    ax_low.set_ylim(*ylim_low)
    ax_high.set_ylim(*ylim_high)
    ax_high.set_title("График с разрывом")
    ax_low.set_ylabel("Рейтинг в %")
    ax_low.set_xlabel("Языки")
    ax_high.spines["bottom"].set_visible(False)
    ax_low.spines["top"].set_visible(False)
    ax_high.tick_params(axis="x", bottom=False, labelbottom=False)
    # Рисуем разрыв оси (волна)
    offset, n_points = 0.03, 33
    pts = np.linspace(-offset, 1 + offset, n_points)
    wave = np.array([1 + (0, offset, 0, -offset)[i % 4] for i in range(n_points)])
    path = Path(list(zip(pts, wave)), [Path.MOVETO] + [Path.CURVE3] * (n_points - 1))

    opts = dict(transform=ax_low.transAxes, clip_on=False, zorder=10)
    ax_low.add_patch(mpatches.PathPatch(path, lw=6, **opts))
    ax_low.add_patch(mpatches.PathPatch(path, lw=3, edgecolor="white", **opts))
    return fig


if __name__ == "__main__":
    langs = ["Python", "C", "C++", "Asm"]
    pops = (21.8, 11.1, 8.6, 1.1)

    # Стиль xkcd
    with plt.xkcd(scale=1, length=300, randomness=30):
        plt.rcParams["font.family"] = "Comic Sans MS"

        # Вызов функции
        fig = plot_broken_axis(langs, pops)
        plt.show()

Литература:

  • Документация Matplotlib. 🔗 Ссылка на гайд

  • Bernd Klein. Numerisches Python Arbeiten mit NumPy, Matplotlib und Pandas

  • Sandro Tosi. Matplotlib for Python Developers

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Ближайшие события

5 человек, 1 300 дашбордов, 2 200 пользователей в месяц. Как не сойти с ума

В Уралсибе self-service BI вышел на масштаб, который сложно представить: 12 000 датасетов, 200+ разработчиков в разных бизнес-блоках, 1 000 потоков данных обновляются каждый день. И всё это поддерживает команда из пяти человек.


При таком масштабе неизбежно появляются дубли, забытые дашборды, сломанные компоненты, разработчики, которые не знают о существовании друг друга, и пользователи, которые всё ещё спрашивают «а зачем BI, если есть Excel?».

Как с этим справляться? Семён Юников расскажет про систему, которую они выстроили: автоматические рассылки разработчикам с рекомендациями по их же объектам, кастомный каталог дашбордов с ИИ-поиском, геймифицированный марафон на 80 разработчиков, после которого количество сломанных компонентов сократилось вдвое. И да, заставки на корпоративных ноутбуках с надписью «Ты ещё в Excel? Переходи в FineBI» тоже часть стратегии.

📅 22 апреля | 15:00 МСК

Бесплатно, онлайн ~3 часа

→ Регистрация

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

В Японии представили спортивную визуальную систему Fencing Visualized, которая в с помощью ИИ в режиме реального времени отслеживает движение шпаг и спортсменов на дуэлях, рисуя их цветные шлейфы. Технология работает через компьютерное зрение без датчиков и маркеров. Дополнительно система распознаёт приёмы фехтовальщиков и показывает их на экране.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Встраивание вычислений в PostgreSQL: PL*, extensions, а теперь и WASM

В рамках выступления на PG BootCamp Russia 2026 Дмитрий Дорофеев, главный конструктор Luxms, рассказал о том, как сегодня развивается встраивание вычислений в PostgreSQL: от классических процедурных языков (PL/pgSQL, PL/Python и других) до новых возможностей с использованием WebAssembly (WASM).

В PostgreSQL исторически поддерживается несколько десятков языков программирования. Если этого недостаточно, можно воспользоваться готовым расширением из огромной экосистемы либо написать своё. Прогресс не стоит на месте, и теперь для выполнения стороннего кода в PostgreSQL можно использовать WASM. 

На примере Luxms BI я расскажу, как мы автоматически генерируем Swagger-документацию прямо внутри PostgreSQL с помощью open-source технологий и WASM.

Посмотреть видео выступления можно на нашем сайте.

Теги:
Рейтинг0
Комментарии0

Вебинар «BI + ETL + КХД за 1,5 млн: как Modus закрывает весь стек корпоративной аналитики»

21 апреля в 12 по МСК приглашаем на вебинар, на котором эксперты ИТ-интегратора «Белый код» расскажут, как малому и среднему бизнесу внедрить BI-систему за 1,5 миллиона рублей.

Одна из задач, с которой к интегратору приходит малый и средний бизнес, — внедрение BI в рамках ограниченного бюджета. При этом есть жесткие требования, например, единая экосистема BI + ETL, без «зоопарка» инструментов, а также нативная работа с 1С как основным источником данных. 

На вебинаре специалисты поделятся практикой внедрения в сегменте МСБ, а также ответят на вопросы. 

Вы узнаете:

  • Почему BI сам по себе не решает проблему разночтений в данных

  • Какие организационные изменения нужны, чтобы аналитика начала работать

  • Modus ETL: как устроена загрузка и обработка данных

  • Modus BI: аналитический портал без лишней сложности

  • Структура проекта за 1,5 млн рублей: стоимость лицензий, этапы проекта и результат

Спикеры вебинара

  • Андрей Рыжик, product owner BI-направления компании «Белый код»

  • Наталья Лобанова, коммерческий директор компании «Белый код»

📌Дата и время: 21 апреля 12:00 МСК (онлайн)

Участие бесплатное, требуется предварительная регистрация.

Принять участие

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Данные есть – чуда нет...

Приходите на онлайн-конференцию GlowByte и FanRuan разбираться, куда делось чудо

Дашборды построены, хранилища заполнены, лицензии куплены, а решения по-прежнему принимаются «на ощущениях». Это не ваша уникальная проблема – это системный разрыв между потенциалом BI и его реальным применением.

22 апреля в 15:00 (МСК) приглашаем вас на Fine Day Online 2026 – ежегодную онлайн-конференцию от GlowByte и FanRuan, где мы разберем, как этот разрыв закрыть.

Что в программе:

●     От данных к ИИ-инсайтам – как превращать сырые данные в умные решения, а не просто красивые графики (Вилл Ченг, ведущий эксперт по отраслевым решениям, руководитель направлений пресейл и внедрение CIS, FanRuan);

●     Интеграция FanRuan + DataHub – реальный опыт построения связной экосистемы данных (Дмитрий Конюхов, ведущий инженер отдела управления данными, “Галамарт”);

●     1 500 дашбордов для 2 500 пользователей – как сделать BI удобным и востребованным в масштабе (Семён Юников, главный эксперт Дирекции BI, Уралсиб);

●     Shadow DWH – тёмная сторона self-service аналитики и как с ней справляться (Пётр Гордиенко, Lead BI, ОТП);

●     Миграция FineBI с 6.0 на 7.0 – практический опыт и подводные камни (Евгений Иванов, DevOps BI-платформы, ОТП).

Для кого:

Руководители и специалисты в области BI, Data & Analytics, CDO, продуктовые и бизнес-аналитики – все, кто хочет, чтобы данные наконец работали на результат.

Формат:

Онлайн, бесплатно, ~3 часа концентрированной пользы. Нужна только регистрация

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Группировка в сводной таблице

Часто возникает задача сгруппировать исторические данные по неделям, месяцам, кварталам или годам. Иногда для решения этой задачи создают дополнительный столбец (например, Месяц) и строят по нему сводную таблицу.

Есть более простой способ сгруппировать данные, но его нет в настройках сводной таблицы, поэтому многие пользователи даже не догадываются о нём:

1️⃣ Построить сводную таблицу по столбцу с датами.

2️⃣ Нажать на любую дату и выбрать в контекстом меню желаемый тип группировки.

➡️ Поиграться: https://docs.google.com/spreadsheets/d/1tNG4K8IwSuAa8cenJDm0b7IXvkHfRo7uF86sHIvtGKo/copy

Теги:
Рейтинг0
Комментарии0

Функции сортировки

Функция SORT (СОРТ) позволяет упорядочить исходную таблицу и вставить результат в другое место. По умолчанию таблица сортируется по первому столбцу в порядке возрастания:

  • Sheets: =SORT(A:C)

  • Excel: =СОРТ(A:C)

Для сортировки по другому столбцу можно передать его номер и направление сортировки: по возрастанию или по убыванию. В Google Sheets это TRUE и FALSE, в Excel — 1 и -1. Следующая формула сортирует таблицу по второму столбцу в порядке убывания:

  • Sheets: =SORT(A:C;2;FALSE)

  • Excel: =СОРТ(A:C;2;-1)

Недостаток такого подхода: при добавлении/удалении столбцов формула может сломаться, придётся вручную обновлять номер столбца. Поэтому гораздо удобнее передавать не номер, а сам столбец для сортировки. В Google Sheets для этого используется та же функция SORT, в Excel — отдельная функция СОРТПО:

  • Sheets: =SORT(A:C;B:B;FALSE)

  • Excel: =СОРТПО(A:C;B:B;-1)

Можно задавать несколько столбцов сортировки. Следующая формула сортирует таблицу по второму столбцу в порядке убывания, одинаковые значения сортируются по третьему столбцу в порядке возрастания:

  • Sheets: =SORT(A:C;B:B;FALSE;C:C;TRUE)

  • Excel: =СОРТПО(A:C;B:B;-1;C:C;1)

Наконец, лайфхак, про который не рассказывают в документации. Если нужно упорядочить данные по разнице столбцов B и C (пример: доходы минус расходы или цена минус себестоимость), то можно использовать формулу массива. В Google Sheets понадобится ARRAYFORMULA или MAP, в Excel всё работает и без них:

  • Sheets: =SORT(A:C;ARRAYFORMULA(B:B-C:C);TRUE)

  • Excel: =СОРТПО(A:C;B:B-C:C;1)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

Телефонный номер

Если попытаться ввести в ячейку электронной таблицы номер телефона, внезапно пропадёт плюс:

+7987654321079876543210

А при попытке вбить форматированный номер телефона и вовсе выскочит ошибка:

+7 987 654-32-10#ERROR

Дело в том, что значения с плюсом в начале распознаются как формулы. Как же тогда ввести телефонный номер в ячейку? Достаточно добавить в начале апостроф. Тогда электронная таблица не будет пытаться распознать формулу и просто воспримет значение как текст:

'+79876543210+79876543210

'+7 987 654-32-10+7 987 654-32-10

Этот способ пригодится в любых случаях, когда значение начинается с плюса, знака равно или похоже на дату (особенно частая проблема).

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии7

Успейте подать свою работу на конкурс BI-дашбордов Data Challenge

Партнер GlowByte компания FanRuan продолжает принимать заявки на первый открытый конкурс BI-дашбордов и визуальной аналитики FineGallery Insight Challenge. Срок подачи - до 31 марта.

Подробнее рассказывали о конкурсе в новости

FineGallery Insight Challenge – это конкурс для аналитиков, BI-разработчиков и команд, которые работают с данными и создают дашборды.

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

Как участвовать

1. Создайте аналитическую работу в FineBI или FineReport.

2. Заполните форму подачи, включив:

  • дашборд,

  • описание работы по структуре (описана на сайте конкурса),

  • информацию об авторе.

3. Дождитесь подтверждения участия и ждите результатов.

Призовой фонд

  • Лучшая бизнес-аналитика – 100 000 руб.

  • Лучший UX (пользовательский опыт) и визуальный дизайн – 70 000 руб.

  • Приз зрительских симпатий – 30000 руб.

Все подробности, включая сроки и требования к конкурсным работам – на сайте конкурса.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Проверка по словарю

Для работы с данными, будь то группировка или условная агрегация, важно, чтобы значения записывались однообразно. Как быть, если нужно сгруппировать сотрудников по отделам, а в соответствующем столбце намешаны «Продажи», «Отдел продаж», и «Sales»? В таких случаях необходимо настроить проверку вводимых значений по словарю.

1️⃣ Для хранения словаря рекомендуется создать таблицу «Отделы». Во-первых, её будет просто дополнять и редактировать. Во-вторых, таблицу можно использовать для хранения метаданных. Например, добавить информацию о руководителе отдела или о расположении в офисе.

2️⃣ Когда словарь готов, можно вернуться в таблицу «Сотрудники», открыть меню столбца «Отдел» и поменять тип на «Раскрывающийся список». Далее в поле «Критерии» указать «Раскрывающийся список (из диапазона)» и ввести табличную ссылку:

=Отделы[Название]

3️⃣ После включения проверки некорректные значения помечаются красным уголком.
Искать их глазами утомительно, поэтому проще временно скрыть корректные значения. Для этого можно зайти в меню столбца, выбрать «Столбец для фильтра», «Фильтровать по условию», «Данные не проверены». Таким образом в таблице останутся только некорректные записи, которые легко исправить. И не забыть сбросить фильтр.

➡️ Поиграться на примере

Теги:
Рейтинг0
Комментарии0

GitHub визуализировали в цифровой город в проекте gitcity. В рамках проекта представлен сайт, на котором можно летать по «городу», где каждое здание это аккаунт разработчиков. Высота небоскребов = количеству коммитов. Летая по городу, можно искать интересные и популярные аккаунты, либо находить что-то новое и недооцененное.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

Приходите на вебинар, расскажем, как получить максимум от системы аналитики

Сначала данные собирали вручную, потом появился BI. Теперь вопрос в том, как получить максимальную отдачу от системы аналитики?

Ответ в облачном сервисе для визуализации и анализа данных — Evolution Managed BI. О нем и расскажем на вебинаре.

Интересно будет бизнес-аналитикам, дата-инженерам, руководителям отделов аналитики. Кстати, если вы еще не работали с нашим или подобным BI-сервисом, то можете бесплатно протестировать его перед вебинаром.

Что расскажем и покажем:

  • как устроен облачный сервис: обсудим архитектуру и преимущества managed-подхода для сокращения времени вывода аналитики в продакшен;

  • что может сервис: расширенные возможности обработки данных, кеширование запросов, управление доступом и безопасность данных;

  • как интегрировать данные на практике: подключать и настраивать различные источники (PostgreSQL, S3 и не только), трансформировать данные и создавать виртуальные датасеты;

  • как визуализировать данные: создать интерактивный дашборд с нуля, настроить фильтры и параметры, использовать продвинутые визуализации;

  • что еще можно делать с помощью сервиса: создание кастомных SQL-запросов, использование метрик и вычисляемых полей, настройка автоматических отчетов и алертов.

📅 Когда? 12 марта в 11:00 мск.

📍Где? Онлайн. Зарегистрируйтесь, чтобы задать вопросы экспертам в прямом эфире.

P.S. У нас есть специальное предложение для тех, кто планирует перенести свою аналитическую систему в облако: вы запускаете тестовый проект в рабочей среде без первоначальных затрат на инфраструктуру, мы — подбираем конфигурацию сервисов и оказываем усиленную поддержку архитекторов. Предложение действует до 31 июля 2026

Теги:
Рейтинг0
Комментарии0

Найм больше не работает как раньше: тренды 2025–2026 и новая роль HR-tech в бизнесе

В 2025–2026 рынок найма — уже новая норма: дефицит кадров становится структурным.

📉 В РФ не хватает около 4,8 млн специалистов, при этом 62% компаний всё равно планируют рост численности, а 24% работников за год сменили работодателя (в отдельных отраслях треть и больше держатся на месте меньше года).

С другой стороны — оптимизация внутренних процессов. Это ощущается особенно жёстко: по данным hh.ru63% компаний в 2024 сокращали или планировали сокращение ФОТ. Получается: ресурсов меньше, цена ошибки выше, запрос на автоматизацию растёт.

💸 Дальше включается экономика, которую обычно недооценивают:

  • 21% сотрудников уходят ещё до конца испытательного срока

  • Ещё 15% — сразу после него

  • Замена одного сотрудника обходится бизнесу в 1,5–2 годовых зарплаты

  • Среднее время выхода на продуктивность — 65 дней, для технических ролей — до 90

⚙️ В такой реальности HR-цифровизация перестаёт быть просто дополнительной фишкой или бонусом при найме. Она становится частью операционного контура: либо вы сокращаете потери системно, либо платите за них постоянно.

Часть компаний в РФ уже давно смотрят в сторону HR-приложений:

🤖 AI в HR перестаёт быть экспериментом: 43% компаний в РФ уже используют AI в HR (против 26% в 2024), а 78% enterprise-компаний применяют AI в рекрутинге.

🔄 Фокус смещается на self-service (справки, отпуск, расчётные листки) — до 80% типовых запросов можно вынести из HR-ручного режима.

📊 Окупаемость понятна: в среднем точка окупаемости HR-приложения — на 9-й месяц, к 18-му ROI может доходить до ~340%.

📎 Мы собрали эти и другие данные в исследование, где зафиксировали ключевые тренды HR-tech 2025–2026, разобрали, как компании подходят к мобильным HR-продуктам, и какие решения дают эффект на практике.

🎁 Отдельный бонус: сделали кликабельный прототип почти готового HR-приложения — не концепт, а рабочий флоу, который можно показать своим HRD.

Исследование в открытом доступе, оно бесплатно и экономит 2–3 месяца аналитики и обсуждений на старте, если вы думаете о запуске или перезапуске HR-продукта 👇

Читать исследование

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Условная агрегация

Пусть есть таблица со всеми сотрудниками компании. Как найти общее число инженеров? С этой задачей справляется функция COUNTIFS (в формулах используются табличные ссылки):

=COUNTIFS(Сотрудники[Должность];"Инженер")

Мы передаём в функцию столбец «Должность» и просим посчитать количество ячеек, содержащих значение «Инженер».

В отличие от поиска, можно легко комбинировать несколько условий. Следующая формула считает количество инженеров в Москве:

=COUNTIFS(Сотрудники[Должность];"Инженер";Сотрудники[Город];"Москва")

Если нужно посчитать не количество, а сумму окладов всех инженеров, пригодится функция SUMIFS:

=SUMIFS(Сотрудники[Оклад];Сотрудники[Должность];"Инженер")

Здесь первым параметром передаётся столбец, который будем суммировать, а дальше условия для выборки. Аналогично работают функции MINIFS и MAXIFS.

Иногда возникает необходимость в более сложной агрегации. Например, нужно склеить имена инженеров через запятую. Специальных формул для такой операции нет. Как быть? В такой ситуации можно сначала выбрать нужные записи с помощью FILTER и потом склеить через JOIN:

=JOIN(", ";FILTER(Сотрудники[Имя];Сотрудники[Должность]="Инженер"))

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

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Цифровые двойники и 3D-визуализация: опыт GlowByte и FanRuan

GlowByte и FanRuan провели бизнес-завтрак с промышленными компаниями. Мероприятие было посвящено новым возможностям бизнес-аналитики, которые открывают инструменты FineVis и FineReport.

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

Чжан Цзэфэн, Product & R&D Lead FineVis, FanRuan, рассказал:

  • как развивалась визуализация данных – от первых таблиц до VR/AR и 3D-моделирования, 

  • что такое цифровой двойник и какие уровни зрелости существуют – от L0 до автономных систем L5, 

  • почему 3D-визуализация имеет критичное значение для аналитики,

  • как применяют компании 3D-моделирование в логистике, производстве, энергетике, умных городах, медицине,

  • как FineVis и FineReport объединяют визуализацию и аналитику, интегрируя данные из ERP-, MES- и IoT-систем.

Смотреть видео выступления Чжана.

Алексей Коломенцов, старший консультант практики Business Intelligence, GlowByte, провел демо, в котором пошагово показал, как с помощью FineVis создать полноценного цифрового двойника – от пустой сцены до живой 3D-модели с данными. 

В демо вы увидите:

  1. Интерфейс системы и ключевые инструменты для работы.

  2. Как строить сценарии взаимодействия с моделью.

  3. Создание с нуля примера 3D-анимации.

  4. Подключение реальных данных к объектам и их отображение в режиме реального времени.

  5. Как сделать визуализацию интерактивной и полезной для аналитики.

Смотреть видео выступления Алексея.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Группировка

Грех номер один при работе с электронными таблицами — ручная группировка данных.

Допустим, есть задача собрать список сотрудников по отделам. Руководитель набрасывает несколько табличек, по одной на каждый отдел. Названия отделов выделяет крупным шрифтом и цветом.

На следующий день приходит задача собрать список сотрудников, но уже по городам. Чёрт, нужно всё переделывать! Создаётся новый лист, где также собирается несколько таблиц. И красивые заголовки, куда без них.

Как избежать ручной работы? Использовать группировку по столбцам в Google Sheets:

  1. Собрать один длинный список сотрудников.

  2. Добавить и заполнить столбцы Отдел и Город.

  3. Преобразовать список в таблицу.

  4. Нажать на стрелку рядом с названием столбца «Отдел» и выбрать «Столбец "Основание группировки"».

  5. Сохранить получившийся фильтр под названием «Сотрудники по отделам».

  6. Проделать аналогичную операцию для столбца «Город».

Итог: получилась одна таблица с данными и два её представления: «Сотрудники по отделам» и «Сотрудники по городам», между которыми можно переключаться в два клика.

К сожалению, в Excel такой функции нет.

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

GlowByte разработала методику выбора BI на основе сценарного анализа

Источник: Freepik.com
Источник: Freepik.com

Практика Business Intelligence GlowByte разработала подробное руководство по сценарному выбору BI с готовой Excel-матрицей для сравнения платформ.

GlowByte выделяет 4 ключевых сценария с разными потребностями и акцентами:

  • отчеты для руководителя,

  • self-service,

  • регламентная отчетность,

  • исследование данных.

Сценарии в матрице сопровождаются своим набором релевантных критериев, каждый из которых имеет оценку критичности, что позволяет адаптировать расчет под конкретный проект: при изменении критичности пересчитываются все баллы, и BI-платформа получает новую оценку.

ℹ️ Методика учитывает изменения в BI-ландшафте, запрос на адаптивность и гибкость, а также необходимость подстраивать инструмент под задачу, а не наоборот. Исследование содержит детальные чек-листы по каждому сценарию, критерии оценки и примеры расчетов.

Впервые GlowByte выпустила сравнительную таблицу инструментов для анализа данных в 2022 году (рассказывали о подходе в статье “Как выбрать BI-платформу”). Подробнее о том, как GlowByte пересмотрела методику и почему старый подход не работает, - в новой статье "От универсальных критериев к сценарному подходу".  

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как бесплатно делать BI-дашборды в облаке

Чтобы строить графики, диаграммы и таблицы, получать аналитику в реальном времени и использовать встроенный SQL Lab достаточно подключить инстанс Evolution Managed BI с free tier.

📊 Что такое Evolution Managed BI

Это управляемы сервис в облаке для создания интерактивных дашбордов и отчетов, построенный на основе Apache Superset.

💸 Что такое free tier

Evolution Managed BI с free tier (объемом ресурсов, за который не надо платить) — это бесплатный экземпляр инстанса BI на виртуальной машине в конфигурации 2 vCPU и 4 ГБ RAM. Плюс полный доступ ко всем функциям сервиса и персональные консультации от наших экспертов по настройке дашбордов в облаке.

Дополнительные сервисы, например, публичный IP, не входят в free tier — они оплачиваются отдельно по тарифам облачной платформы.

👉 Собрали подробные руководства, в них по шагам рассказываем, как создать сервис, подключиться к СУБД, создать первый датасет и построить дашборд:

✅Готовы попробовать мощный инструмент для аналитики данных?

Теги:
Рейтинг0
Комментарии0

Делимся записью докладов с нашего митапа «Вперед в будущее!»

Павел Варнавский, руководитель группы разработки «ДАР» (Корус Консалтинг), рассказал, как их команда использует BI Magic в своих проектах для создания мощных аналитических решений.

Смотреть выступление

В записи - примеры и разбор:

  • Как сделать дэшборд с уникальной визуализацией

  • Как внедрять CI/CD для дэшбордов и масштабировать решения под конкретные процессы, там, где стандартных «коробочных» решений не хватает

  • Два практических кейса, где кастомная разработка на Luxms BI решила нетипичные задачи

Будет интересно всем, кто работает с нестандартной аналитикой, сложными требованиями бизнеса и хочет понимать, как кастомная BI-разработка может быть управляемой и удобной

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Таблицы

Самая недооценённая функция электронных таблиц — таблицы. Что за ерунда, подумает читатель. Дело в том, что есть два английских слова: spreadsheet и table. При переводе на русский язык возникает путаница.

Таблица — это набор данных в виде столбцов (как в SQL). Изначально таблицы были реализованы в Excel, а в 2024 появилась поддержка и в Google Sheets.

Пусть есть список сотрудников из трёх столбцов: ID, ФИО и Оклад. Преобразуем его в таблицу. Для этого достаточно в любом месте диапазона с данными нажать сочетание клавиш:

  • Excel: Ctrl + T (⌘ + T)

  • Google Sheets: Ctrl + Alt + T (⌘ + ⌥ + T)

Поначалу кажется, что данные просто красиво отформатировали. Но это лишь внешнее изменение. Главное отличие: названия таблицы и её столбцов можно использовать в формулах в виде табличных ссылок.

Переименуем таблицу в Сотрудники (в Excel это делается не совсем очевидно). Теперь посчитаем сумму окладов двумя способами: с помощью обычных и табличных ссылок.

=SUM(C2:C7)
=SUM(Сотрудники[Оклад])

Или найдём ФИО сотрудника по ID:

=XLOOKUP(4357379;A2:A7;B2:B7)
=XLOOKUP(4357379;Сотрудники[ID];Сотрудники[ФИО])

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Поиск по нескольким столбцам

Как в электронной таблице найти строчку не по одному столбцу, а по двум? XLOOKUP умеет искать только по одному, поэтому приходится выкручиваться.

Пример: есть таблица продаж, где в столбцах A и B хранятся дата и идентификатор товара. Нужно найти продажи определённого товара за конкретный день.

Первое решение: создать в исходной таблице вспомогательный столбец C, в котором склеить дату и идентификатор товара. Для склейки используем оператор & (амперсанд):

=A2&B2 (и так для всех строчек)

Теперь можно искать по этому столбцу и доставать необходимые данные, например, из столбца D. Если нужно найти продажи товара 1234567 за сегодня, используем формулу:

=XLOOKUP(TODAY()&"1234567";C:C;D:D)

Второе решение: генерировать этот вспомогательный столбец на лету с помощью ARRAYFORMULA и так же искать по нему:

=XLOOKUP(TODAY()&"1234567";ARRAYFORMULA(A:A&B:B);D:D)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Поиск по столбцу

Почти каждый пользователь электронных таблиц рано или поздно сталкивается с задачей провэпээрить таблицу: найти значение в одном столбце и вернуть соответствующее значение из другого столбца. Типичный сценарий: перенести данные из одной таблицы в другую по какому-то идентификатору.

Функция VLOOKUP (ВПР) появилась в 1985 году в самой первой версии Excel и занимала третье место по популярности среди пользователей (после SUM и AVERAGE). За это время она морально устарела, поэтому в 2020 году разработчики Excel добавили новую функцию XLOOKUP. В 2022 году она появилась и в Google Sheets.

Чем же XLOOKUP лучше, чем VLOOKUP?

Напомню, VLOOKUP принимает на вход четыре параметра:

  1. искомое значение;

  2. ссылку на таблицу (поиск идёт по первому столбцу);

  3. номер столбца с результатами;

  4. тип поиска: точный или приблизительный.

1️⃣ VLOOKUP закладывается на структуру исходной таблицы. Если завтра порядок столбцов поменяется, формула может сломаться. Придётся руками обновлять номер столбца с результатами. XLOOKUP принимает на вход два диапазона и спокойно переживает перемещение любого из них:

=VLOOKUP("needle";A:Z;2;0)
=XLOOKUP("needle";A:A;B:B)

2️⃣ Для VLOOKUP столбец с результатами должен располагаться справа от столбца для поиска. Передать третьим аргументом отрицательное число нельзя. XLOOKUP лишён этого ограничения и позволяет доставать результаты слева от столбца для поиска:

=XLOOKUP("needle";B:B;A:A)

3️⃣ При неудачном поиске VLOOKUP возвращает #N/A. Если вместо ошибки хочется выводить что-то другое (например, пустое значение), приходится дополнительно вызывать функцию IFNA. В XLOOKUP можно четвёртым аргументом передать значение, которое будет выводиться при неудачном поиске:

=IFNA(VLOOKUP("needle";A:Z;2;0);"not found")
=XLOOKUP("needle";A:A;B:B;"not found")

4️⃣ По умолчанию VLOOKUP ищет приблизительное совпадение. Для поиска точного соответствия надо передать FALSE или ноль четвёртым параметром. Часто про это забывают и долго разбираются, почему функция работает не так, как ожидалось. XLOOKUP по умолчанию ищет точное соответствие, помогая избежать ошибок.

5️⃣ Приблизительный поиск VLOOKUP умеет искать только ближайшее меньшее значение. При этом исходная таблица должна быть отсортирована. XLOOKUP в режиме приблизительного поиска позволяет искать как меньшее, так и большее значение. Таблицу сортировать необязательно.

6️⃣ Если подходящих значений в таблице больше одного, VLOOKUP ищет только первое совпадение. XLOOKUP умеет запускать поиск с любого конца и может находить как первое, так и последнее совпадение.

Единственный минус XLOOKUP: функция недоступна в Excel 2019 и более ранних версиях. Да и по-русски называется ПРОСМОТРХ, где Х — это «икс», а не «ха». К вопросу, почему я избегаю русскоязычные названия функций.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

ARRAYFORMULA vs. MAP

В Google Sheets есть две функции, позволяющие производить операции над целыми массивами: ARRAYFORMULA и MAP.

Пусть в столбце A лежит цена товара, а в столбце B — скидка в процентах. Посчитаем финальную цену для всех товаров:

=ARRAYFORMULA(A2:A*(1-B2:B))

Как видно, ARRAYFORMULA позволяет обращаться с массивами как с одиночными ячейками, выполняя любые арифметические (и не только) действия. Под капотом формула работает построчно: сначала обрабатывает первые ячейки столбцов A и B, потом вторые, и т.д. Всего одной формулой мы посчитали финальные цены сразу для всех товаров. Минус такого подхода: когда формула разрастается, становится тяжело разобраться, какие действия с какими столбцами производятся.

Решим ту же задачу с помощью MAP:

=MAP(A2:A;B2:B;LAMBDA(price;discount;price*(1-discount)))

Функция принимает на вход неограниченное количество массивов (в нашем случае — два). Далее она последовательно берёт элементы этих массивов, передаёт в функцию LAMBDA под именами, указанными в первых аргументах (price и discount), и выполняет вычисление, переданное последним аргументом (price*(1-discount)). Благодаря явному именованию массивов формула читается понятнее.

Встречаются случаи, когда ARRAYFORMULA в принципе не работает. Например, когда внутри необходимо использовать другую формулу массива.

Пример: пусть для каждого значения из столбца A нужно отфильтровать и склеить через запятую значения из другой таблицы:

=ARRAYFORMULA(JOIN(", ";FILTER(D2:D;E2:E=A2:A)))

Формула не работает, т.к. FILTER получает вторым аргументом сравнение двух массивов и не понимает, что от него требуется.

MAP же успешно справляется с этой задачей, т.к. передаёт в лямбда-функцию конкретное значение, по которому можно отфильтровать другую таблицу:

=MAP(A2:A;LAMBDA(id;JOIN(", ";FILTER(D2:D;E2:E=id))))

Резюме: в простейших случаях ARRAYFORMULA компактнее, в сложных формулах MAP более понятное, а иногда и единственное решение.

Теги:
Рейтинг0
Комментарии0

Ссылка на массив переменной длины

Пусть в столбце A лежит массив переменной длины (например, результат работы FILTER). В столбце B мы хотим написать формулу массива, например, удвоить все значения столбца A.

Можно применить формулу ко всему столбцу A:

  • Excel: =2*A2:A1000

  • Sheets: =ARRAYFORMULA(2*A2:A)

Но так возникнут лишние нули там, где данные закончились. Вопрос, как применить формулу только к диапазону с данными, учитывая, что количество строк может в любой момент поменяться?

В Excel достаточно использовать решётку:

=2*A2#

В Google Sheets такого оператора нет, приходится выкручиваться:

=ARRAYFORMULA(2*OFFSET(A2;0;0;COUNTA(A2:A)))

  • Функция COUNTA считает количество непустых значений в столбце.

  • Функция OFFSET возвращает диапазон нужного размера, начиная с указанной ячейки.

Из первого пункта следует важное ограничение: формула работает только при отсутствии пустых значений в данных, иначе функция COUNTA неправильно посчитает высоту диапазона.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Новогодняя аномалия в данных мониторинга.

С Новым Годом!
С Новым Годом!

Воспроизвести достаточно просто

  • Скачать и установить Dimension-UI.

  • Развернуть локально PostgreSQL.

  • Запустить в Dimension-UI мониторинг данных PostgreSQL с помощью запроса с интервалом 3 сек.

WITH params AS (
    SELECT 
        15 AS total_frames,
        20 AS canvas_height,
        3  AS frame_duration_sec
),
animation_state AS (
    SELECT 
        (CAST(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) AS INTEGER) / frame_duration_sec) % total_frames AS frame_idx
    FROM params
),
tree_definition AS (
    SELECT 
        frame_id, 
        y_pos,
        CASE
            -- ═══════════════════════════════════════
            -- ЗВЕЗДА на верхушке
            -- ═══════════════════════════════════════
            WHEN y_pos = 20 AND frame_id = 7 THEN '*'
            
            -- ═══════════════════════════════════════
            -- ВЕРХУШКА елки (острая)
            -- ═══════════════════════════════════════
            WHEN y_pos = 19 AND frame_id = 7 THEN 'G'
            
            -- ═══════════════════════════════════════
            -- ЯРУС 1 (y=16-18) — расширяется книзу
            -- ═══════════════════════════════════════
            WHEN y_pos = 18 AND frame_id BETWEEN 6 AND 8 THEN 'G'
            WHEN y_pos = 17 AND frame_id BETWEEN 5 AND 9 THEN 'G'
            WHEN y_pos = 16 AND frame_id BETWEEN 4 AND 10 THEN 'G'  -- широкий низ яруса
            
            -- Сужение перед ярусом 2
            WHEN y_pos = 15 AND frame_id BETWEEN 5 AND 9 THEN 'G'
            
            -- ═══════════════════════════════════════
            -- ЯРУС 2 (y=12-14)
            -- ═══════════════════════════════════════
            WHEN y_pos = 14 AND frame_id BETWEEN 4 AND 10 THEN 'G'
            WHEN y_pos = 13 AND frame_id BETWEEN 3 AND 11 THEN 'G'
            WHEN y_pos = 12 AND frame_id BETWEEN 2 AND 12 THEN 'G'  -- широкий низ яруса
            
            -- Сужение перед ярусом 3
            WHEN y_pos = 11 AND frame_id BETWEEN 4 AND 10 THEN 'G'
            
            -- ═══════════════════════════════════════
            -- ЯРУС 3 (y=8-10)
            -- ═══════════════════════════════════════
            WHEN y_pos = 10 AND frame_id BETWEEN 3 AND 11 THEN 'G'
            WHEN y_pos = 9  AND frame_id BETWEEN 2 AND 12 THEN 'G'
            WHEN y_pos = 8  AND frame_id BETWEEN 1 AND 13 THEN 'G'  -- широкий низ яруса
            
            -- Сужение перед ярусом 4
            WHEN y_pos = 7 AND frame_id BETWEEN 3 AND 11 THEN 'G'
            
            -- ═══════════════════════════════════════
            -- ЯРУС 4 — нижний, самый широкий (y=4-6)
            -- ═══════════════════════════════════════
            WHEN y_pos = 6 AND frame_id BETWEEN 2 AND 12 THEN 'G'
            WHEN y_pos = 5 AND frame_id BETWEEN 1 AND 13 THEN 'G'
            WHEN y_pos = 4 AND frame_id BETWEEN 0 AND 14 THEN 'G'  -- во всю ширину!
            
            -- ═══════════════════════════════════════
            -- СТВОЛ (y=1-3)
            -- ═══════════════════════════════════════
            WHEN y_pos BETWEEN 1 AND 3 AND frame_id BETWEEN 6 AND 8 THEN 'T'
            
            -- Всё остальное — фон
            ELSE 'S'
        END AS pixel_char
    FROM generate_series(0, 14) AS frame(frame_id)
    CROSS JOIN generate_series(1, 20) AS y(y_pos)
),
pixel_data AS (
    SELECT td.*
    FROM tree_definition td
    JOIN animation_state ast ON td.frame_id = ast.frame_idx
),
layers_logic AS (
    SELECT 
        y_pos,
        pixel_char,
        MAX(CASE WHEN pixel_char IN ('T', 'G', '*') THEN y_pos ELSE 0 END) OVER () as max_obj_height
    FROM pixel_data
)
SELECT 
    CURRENT_TIMESTAMP as dt,
    CASE 
        WHEN pixel_char = 'T' THEN '4_Trunk'
        WHEN pixel_char = 'G' THEN '3_Tree'
        WHEN pixel_char = '*' THEN '2_Star'
        WHEN pixel_char = 'S' THEN 
            CASE WHEN y_pos > max_obj_height 
    

p.s. Данные по запросу любезно предоставлены Claude Opus 4.5.

Теги:
Всего голосов 5: ↑3 и ↓2+3
Комментарии1

Проверка на уникальность

Пусть есть список однотипных объектов: товаров, заказов или сотрудников. У каждого элемента есть идентификатор. Как предотвратить ситуацию, когда при заполнении таблицы кто-нибудь добавит элемент дважды? Другими словами, как гарантировать уникальность идентификаторов?

В sql для этого используется PRIMARY KEY или UNIQUE, в электронных таблицах встроенных инструментов нет. Как вариант, можно реализовать подсветку дубликатов с помощью условного форматирования и функции COUNTIF:

Формат → Условное форматирование
Применить к диапазону: A2:A
Правила форматирования → Ваша формула =AND(LEN(A2);COUNTIF(A$2:A;"="&A2)>1)
Цвет фона: красный

Как работает формула:

  • LEN(A2) проверяет, что ячейка заполнена;

  • COUNTIF(A$2:A;"="&A2) считает количество ячеек, совпадающих с текущей. Если оно больше одного, срабатывает условное форматирование.

В результате при вводе идентификатора, который уже присутствует в списке, дубликаты будут подсвечиваться красным.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

GlowByte на Хабре: подводим итоги 2025 года

Пробежимся по основным статьям, которые наши авторы написали в этом году.

Год начался с "ПИКантной миграции" – активный участник сообщества FineBI GlowByte от первого лица рассказал о том, как компания ПИК мигрировала c Tableau на FineBI. 

Команда Financial Intelligence GlowByte разобрала ситуации для импортозамещения CPM, а бизнес-архитектор практики Retail Solution GlowByte Алексей Чванов рассказал, как ритейл в России слезает с промозависимости. Команда IIOT описала цифровую трансформацию как основу непрерывного улучшения производства.

Мы также рассказали, почему книгу Брюса Сильвера «BPMN. Метод и стиль» называют фундаментальной. А эксперт GlowByte Юлий Гольдберг, основываясь на своем 20-летнем опыте работы с платформами данных, BI, аналитическими решениями, поделился: что нужно помнить, чтобы Self‑Service BI стал реальным драйвером развития корпоративной культуры работы с данными, а не остался благим пожеланием. 

В дополнение темы о Self-Service аналитике – познакомили вас с новой BI-платформой Sigla Vision.

Команда Business Intelligence GlowByte рассказала о скрытой стоимости BI и вместе с партнером FanRuan посмотрела на китайскую ИИ-революцию и экосистему ИИ-продуктов FanRuan.   

Ведущий аналитик GlowByte Артем Матяш описал свой личный опыт прохождения сертификации процессных аналитиков в Ассоциации профессионалов процессного управления.  

Ведущий архитектор GlowByte Марк Лебедев поделился результатами нагрузочного тестирования, которое он с коллегами провел для сравнения Greenplum 6 с Greenplum 7 и Cloudberry, а спустя время дополнил картину, рассказав о тестировании YMatrix

Следующий год планируем открыть статьей о выборе BI-системы на основе разработанной в GlowByte методики.

Всех с наступающим Новым годом!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0