В прошлых уроках мы анализировали продажи канцелярских товаров.
В своем анализе мы опирались на таблицу с тремя доступными товарами и тремя строками на каждый месяц первого квартала 2023 года. Данных было мало, поэтому анализ был не очень реалистичный. Зато мы научились совершать первые шаги в анализе данных.
В этом уроке мы продолжим погружаться в тему. Мы будем усложнять задачу и попробуем проанализировать крупную таблицу различными способами.
Начинаем работу с большой таблицей
По ходу всего урока мы будем рассматривать таблицу из 1000 строк. В ней отражены продажи товаров продуктового магазина в течение одного дня:
В таблице есть четыре колонки:
-
Product — продукт
-
Quantity — количество проданных товаров
-
Price — цена
-
Product_id — уникальный идентификатор товара
Автор сэкономил свое время и сгенерировал данные продаж с помощью сайта Mockaroo. Поэтому все названия продуктов на английском языке и цены указаны в долларах. Это сгенерированные данные, поэтому на одну и ту же товарную позицию цена может отличаться.
Представим, что нам нужно выяснить, у какого продукта максимальная цена. На него мы и ответим в этом уроке, причем разными способами.
Как анализировать данные с помощью сортировки
Рассмотрим сортировку — первый способ анализа. Пройдем этот процесс по шагам.
Сначала выясним количество строк в таблице. Для этого выделим любой столбец таблицы — например, столбец A:
В правом нижнем углу вы увидите цифру, которая отображает количество заполненных строк в выделенном столбце. Это количество будет включать в себя и строку с названием столбца. Вычитаем единицу и получаем заветную цифру количество строк с данными в таблице — 1000.
Дальше подсчитаем, сколько уникальных товаров содержит таблица. Для подсчета можно использовать функцию COUNTUNIQUE:
Так мы выяснили, что в таблице этого урока содержится 833 уникальные записи. Значит, не все товары из списка были проданы один раз.
Чтобы нам было удобнее работать с таблицей, мы отсортируем товары по названию в алфавитном порядке. Так будет нагляднее: например, мы сразу увидим, сколько раз товар А был продан сегодня. Еще так будет удобнее создавать функции, ведь обработать отсортированный список проще.
Отсортируем таблицу по значениям одного столбца:
- Выделяем всю таблицу, не включая строки с названиями столбцов
- Открываем вкладку «Данные»
- На вкладке «Данные» раскрываем пункт «Сортировать диапазон»
- Выбираем нужный тип сортировки диапазона — нам подходит «Сортировать диапазон по столбцу А»
Теперь таблица стала удобнее для восприятия:
Как найти товары с максимальной ценой
Самый простой способ найти два товара с максимальной ценой в нашем случае — это отсортировать исходную таблицу заново, только уже по столбцу с ценой.
Для этого на вкладке «Данные» мы пройдем в пункт «Расширенные настройки сортировки диапазонов». В ответ Google Sheets выведет такое окно:
В нашей таблице цена записана в столбец С. По нему и отсортируем весь диапазон.
Если вы хотите отсортировать таблицу сразу по нескольким столбцам, алгоритм сортировки можно настроить тут же, добавив последовательность сортировки, нажав на кнопку «Добавить еще один столбец для сортировки».
Если выделенные вами данные включают в себя заголовки, поставьте галочку напротив «Данные со строкой заголовка».
Также в меню расширенной сортировки вы можете выбрать, будете ли вы сортировать:
- По возрастанию (от А до Я)
- По убыванию (от Я до А)
В нашей задаче нужна сортировка по убыванию. Пока не будем обращать внимание на то, что в нашей таблице товары не сгруппированы по названию.
На картинке видно три продукта с наибольшими ценами:
Формально, у нас есть первый ответ на поставленную бизнес-задачу. Наибольшая цена у фокаччи и апельсиновой газировки.
Того же результата можно добиться и другими способами, которые мы изучим дальше в уроке.
Как анализировать данные с помощью функции
Кроме сортировки в Google Sheets есть еще и функция МАКС. Также мы умеем фиксировать ссылку на столбец и номер ячейки с помощью символа $.
Помимо этого, мы уже узнали, что найти название товара с наибольшей ценой можно с помощью комбинации трех функций:
В прошлом уроке мы уже применяли эти формулы в таком виде:
Перед применением формул нужно убрать символ $ с помощью метода «Найти и заменить»:
-
Скопируем символ $
-
Нажмем сочетание горячих клавиш Ctrl+H
-
В появившемся окне мы увидим поле «Заменить на». Ничего не пишем в нем и нажимаем кнопку «Заменить все»:
-
Нажимаем кнопку «Готово»:
-
По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все точки на запятые в столбце C. Это можно сделать по аналогии с заменой знака $ на пустоту
Теперь наша таблица готова. Начинаем анализ:
-
Выбираем ячейку E3 и находим в ней название товара с максимальной ценой. Формулу вы видите на картинке ниже:
-
Выбираем ячейку Е4. Находим в ней название товара со второй по размеру ценой для диапазона, стартующего уже в третьей строке:
Так мы получили достоверный ответ.
Такой алгоритм применим для отсортированной таблицы. Если мы хотим проанализировать с помощью функции неотсортированную таблицу, придется применить еще один метод.
Как анализировать данные с помощью сводной таблицы
Сводные таблицы подходят для анализа данных в особых случаях — когда есть повторяющиеся категории товаров, по которым мы группируем таблицу.
В нашем случае повторения строк минимальны.
Мы могли бы проанализировать данные только повторяющихся продуктов, но пока такой цели перед нами не стоит. Просто запомним: сводные таблицы хороши в агрегации данных.
При этом они не подойдут, если агрегировать таблицу не получается — то есть когда нельзя выделить несколько категорий в данных. В таком случае мы получим ошибку, как на картинке ниже:
Как анализировать данные с помощью графика
Помимо работы с таблицей, мы также можем оценить наши данные визуально. Так например, найти самые продаваемые товары можно с помощью графика или диаграммы:
Для большей детализации данных на графике потребуется сузить и набор иллюстрируемых данных. Например, можно отсеять только товары с максимальной ценой или количеством проданных единиц товара.
Выводы
Когда мы анализируем данные, метод анализа зависит от специфики самих данных. В нашем распоряжении уже есть несколько инструментов анализа данных, которые позволяют аналитику быть гибким в выборе метода анализа таблиц.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 17:14:11 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="lmg1WOFfFrwrQPACvyfuQ-arZhFyshs3hBti-SltZNd5uf5vEyG73J0D1JqzKB40JqJLu3qF5ZU5-_ite2qDuQ";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Вторая бизнес-задача | Введение в дата-аналитику</title>
<meta name="description" content="Вторая бизнес-задача / Введение в дата-аналитику: Учимся использовать простейшую визуализацию">
<link rel="canonical" href="https://ru.hexlet.io/courses/data-analytics-basics/lessons/second-task/theory_unit">
<meta name="robots" content="noarchive">
<meta property="og:title" content="Вторая бизнес-задача">
<meta property="og:title" content="Введение в дата-аналитику">
<meta property="og:description" content="Вторая бизнес-задача / Введение в дата-аналитику: Учимся использовать простейшую визуализацию">
<meta property="og:url" content="https://ru.hexlet.io/courses/data-analytics-basics/lessons/second-task/theory_unit">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="Blhn5p6xK-5uaBoIKuF9pagq3OQUVl5AuElHtDcXR9npiazRbM-GjtgrPpAm7o3SaCPxThxhoOIFqd3gZRCgtw" />
<script src="/vite/assets/inertia-INZxX8jp.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-6pOtQ3OW.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY1MywicHVyIjoiYmxvYl9pZCJ9fQ==--5107185de77b3481e0a836f9fc7326c4e1b77be4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Data%20extraction-pana.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk1NSwicHVyIjoiYmxvYl9pZCJ9fQ==--1c8f7302c065771c5d7e80ddb88ca12990da198b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Analytics-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8175585f43b5401994e29b3ae73d76963d942512/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Browser%20stats-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg2MiwicHVyIjoiYmxvYl9pZCJ9fQ==--04a703ca18d7bf689064f1f3c2721058bd5564e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Statistics-bro.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/courses/lessons/theory_unit","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T17:14:11.097Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"DNCCU7KE8B7PwfxU_OAwFe00OiwIZnJdVVuK60S4KDHjAUlkQPpdfnmC2Mzw78BiLT0XhgBRjP_ouxC_Fr_PXw","topics":[{"id":87911,"title":"Добрый день!\n\nПодскажите, пожалуйста. Каким образом можно вывести информацию по месяцам в сводной таблице?","plain_title":"Добрый день! Подскажите, пожалуйста. Каким образом можно вывести информацию по месяцам в сводной таблице? ","creator":{"public_name":"Александр","id":438638,"is_tutor":false},"comments":[{"creator":{"public_name":"Александр","id":438638,"is_tutor":false},"id":175957,"body":"Вот тут нашел ответ: https://www.codecamp.ru/blog/google-sheets-group-by-month/","topic_id":87911},{"creator":{"public_name":"Roman Ashikov","id":226258,"is_tutor":true},"id":176023,"body":"Приветствую! Спасибо! Добавил подобный туториал в QnA. Гляньте: https://ru.hexlet.io/qna/data-analytics/questions/kakim-obrazom-mozhno-vyvesti-informatsiyu-po-mesyatsam-v-svodnoy-tablitse-v-google-sheets","topic_id":87911},{"creator":{"public_name":"Александр","id":438638,"is_tutor":false},"id":175956,"body":"Вот тут нашел ответ: https://www.codecamp.ru/blog/google-sheets-group-by-month/","topic_id":87911}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":90436,"title":"У меня такой же вопрос по задаче как у Петра за 20 мая. Сделала колонку в изначальной таблице сумма = количество на цену. В сводной таблце выставила фильтр год 2011 и в странах оставила нужные по условию задачи. 5 самых продаваемых товаров вышли такие . по количеству видно что А DOLLY GIRL LUNCH BOX было больше. тогда почему ответ другой?(https://docs.google.com/document/d/1RpJ3FeTEu008WM--Av7CzXRPWkmoMC6PQ_U5s8vHZ3o/edit?usp=sharing)","plain_title":"У меня такой же вопрос по задаче как у Петра за 20 мая. Сделала колонку в изначальной таблице сумма = количество на цену. В сводной таблце выставила фильтр год 2011 и в странах оставила нужные по условию задачи. 5 самых продаваемых товаров вышли такие . по количеству видно что А DOLLY GIRL LUNCH BOX было больше. тогда почему ответ другой?(https://docs.google.com/document/d/1RpJ3FeTEu008WM--Av7CzXRPWkmoMC6PQ_U5s8vHZ3o/edit?usp=sharing) ","creator":{"public_name":"Таисия Куроедова","id":653254,"is_tutor":false},"comments":[{"creator":{"public_name":"Artyom Kropp","id":381127,"is_tutor":true},"id":179693,"body":"Добрый день!\n\nЭто вы нашли самый продаваемый товар, но условием задачи является \"Сравните эти товары и найдите тот, который заказывали чаще других в разные месяцы\". Справедливо ли это утверждение для DOLLY GIRL LUNCH BOX?","topic_id":90436}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":88160,"title":"Доброго дня!\nНе пойму, почему не проходит ответ?\nЧтобы не было спойлера (ответ - \"нижнее наименование товара в СВОДНОЙ таблице\")\nhttps://docs.google.com/spreadsheets/d/1GBZJam6qJaRtbdOLzXnkotcTOqdEaJ6dkRNL745B05A/edit?usp=sharing","plain_title":"Доброго дня! Не пойму, почему не проходит ответ? Чтобы не было спойлера (ответ - \"нижнее наименование товара в СВОДНОЙ таблице\") https://docs.google.com/spreadsheets/d/1GBZJam6qJaRtbdOLzXnkotcTOqdEaJ6dkRNL745B05A/edit?usp=sharing ","creator":{"public_name":"Владимир","id":609435,"is_tutor":false},"comments":[{"creator":{"public_name":"Владимир","id":609435,"is_tutor":false},"id":176223,"body":"Решил ввести в ответ товар, который чаще продавался, и он оказался верным.\nВ моей таблице - правильный ответ не входит в топ 5 товаров, которые продались на наибольшую сумму.\nВозможно некорректно поставлен вопрос. \nПрошу меня поправить, если я не прав.\nСпасибо!","topic_id":88160}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":85629,"title":"Не совсем пониманию задание, что найти то нужно? \nТоп проданных товаров среди пяти стран или максимально проданный товар среди пяти стран?\nP.S. и тот и тот ответ не засчитывается.\nP.S.S. в самом задании орфографические ошибки.","plain_title":"Не совсем пониманию задание, что найти то нужно? Топ проданных товаров среди пяти стран или максимально проданный товар среди пяти стран? P.S. и тот и тот ответ не засчитывается. P.S.S. в самом задании орфографические ошибки. ","creator":{"public_name":"Дмитрий Слепцов","id":397226,"is_tutor":false},"comments":[{"creator":{"public_name":"Nikolai Gagarinov","id":104929,"is_tutor":true},"id":172588,"body":"Дмитрий, добрый день.\n\nСпасибо, поправил текст задания. Чтобы вы могли увидеть изменения - нажмите кнопку \"сброс\".\n\nНеобходимо найти за 2011 среди указанных стран 5 товаров, которые продались больше всего на общую сумму за год. Среди них найти тот, который продавался чаще всего по месяцам. \nНапример один товар мог продаваться на 9900 единиц, но два месяца (январь, июнь), а другой на 1000, но несколько месяцев (например 6 из 12). \nПри этом оба товара могут быть проданы на общую сумму примерно одинаково (просто один дороже, другой дешевле).","topic_id":85629}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":88824,"title":"Здравствуйте, мне кажется, что задания которые даются между уроками объясняются в следующем уроке а не в текущем? (и так после каждого урока)","plain_title":"Здравствуйте, мне кажется, что задания которые даются между уроками объясняются в следующем уроке а не в текущем? (и так после каждого урока) ","creator":{"public_name":"","id":650586,"is_tutor":false},"comments":[{"creator":{"public_name":"Roman Ashikov","id":226258,"is_tutor":true},"id":177271,"body":"Приветствую!\n\nПочему вы так решили?","topic_id":88824}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":90849,"title":"Добрый день. Вопрос по примеру из теории, а конкретно по выявлению товара с максимальной выручкой от продаж. Делаю все как в теории ответ в обоих случаях получается \"Truffle Shells - Semi - Sweet\". Что я делаю не так? (https://docs.google.com/spreadsheets/d/1ZCGlqo1Uis2na3noJNOeP-P-yEzNcHeWhezx4mKZfjs/edit#gid=1974132700)\n","plain_title":"Добрый день. Вопрос по примеру из теории, а конкретно по выявлению товара с максимальной выручкой от продаж. Делаю все как в теории ответ в обоих случаях получается \"Truffle Shells - Semi - Sweet\". Что я делаю не так? (https://docs.google.com/spreadsheets/d/1ZCGlqo1Uis2na3noJNOeP-P-yEzNcHeWhezx4mKZfjs/edit#gid=1974132700) ","creator":{"public_name":"Дмитрий Широков","id":474557,"is_tutor":false},"comments":[{"creator":{"public_name":"Ivan Mamtsev","id":294764,"is_tutor":true},"id":180147,"body":"По ссылке нет доступа.\n\nТем не менее, обратите внимание, что этот товар должен продаваться чаще всех, т.е. почти каждый месяц.","topic_id":90849},{"creator":{"public_name":"","id":661327,"is_tutor":false},"id":180318,"body":"**Дмитрий Широков**, я тыкала-тыкала и разобралась. По теории мы сначала все отсортировали по столбцу С, а потом перед применением формул только меняем $ и точки на запятые (да, в теории ошибка, нужно точки заменить на запятые). Там в случае с точками идет ошибка сортировки (между значениями 92.00 и 88.00 проскакивают цифры 9.15 и тд). Пока мы не заменим точки на запятые сортировка не исправится и не станет правильной. Поэтому после замены точек на запятые нужно отсортировать столбец С повторно - тогда все встанет на свои места, сортировка станет правильной и формулы будут работать корректно. Почему проскакивает ошибка - не знаю, из-за точек таблица может некорректно читать данные. А еще лучше и правильней - перед началом работы (сортировок, поисков и формул) заменить все неправильные знаки на правильные и все сработает с первого раза корректно. Попробуйте","topic_id":90849}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":93888,"title":"По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все запятые в столбце C на точки. Это можно сделать по аналогии с заменой знака $ на пустоту\n\nТочки меняем на запятые,а не наоборот","plain_title":"По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все запятые в столбце C на точки. Это можно сделать по аналогии с заменой знака $ на пустоту Точки меняем на запятые,а не наоборот ","creator":{"public_name":"Михаил Лузгин","id":662448,"is_tutor":false},"comments":[{"creator":{"public_name":"Nikolai Gagarinov","id":104929,"is_tutor":true},"id":184099,"body":"Михаил, добрый день.\n\nДанные поправил, теперь они отформатированы и с ними можно работать без дополнительной обработки.","topic_id":93888}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":88505,"title":"Мне кажется, или описание TRUE/FALSE параметра в сигнатуре VLOOKUP в видеолекции дается некорректное? В видеолекции что-то говорится о том, может ли повторно встречаться одно и то же значение в выводимой таблице. Но ведь в ВПР/VLOOKUP этот параметр отвечает за точное/неточное совпадение при поиске?","plain_title":"Мне кажется, или описание TRUE/FALSE параметра в сигнатуре VLOOKUP в видеолекции дается некорректное? В видеолекции что-то говорится о том, может ли повторно встречаться одно и то же значение в выводимой таблице. Но ведь в ВПР/VLOOKUP этот параметр отвечает за точное/неточное совпадение при поиске? ","creator":{"public_name":"Sergey Udachin","id":547390,"is_tutor":false},"comments":[{"creator":{"public_name":"Nikolai Gagarinov","id":104929,"is_tutor":true},"id":176877,"body":"Сергей, добрый день.\n\nВы верно подметили. [По документации](https://support.google.com/docs/answer/3093318?hl=ru) так и есть.\nВ данном видео лектор ошибся.","topic_id":88505},{"creator":{"public_name":"Михаил Лузгин","id":662448,"is_tutor":false},"id":184053,"body":"а еще можно писать просто 0 или 1)и фиксировать ячейку в формуле можно зажатием клавиши и протягивать не вручную а ктрл ентер)","topic_id":88505}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":88201,"title":"1. Почему такой ответ? REGENCY CAKESTAND 3 TIER. Данный товар продавался всего 85 раз. А DOLLY GIRL LUNCH BOX 780 раз. \n2. \tПочему при формировании сводной таблицы формируются такие строки:\nВсего (10.03.2011)\t\t72\t0,85.\nВсего (10 COLOUR SPACEBOY PEN)\t\t\t72\t0,85.\nНельзя ли обойтись без них. Они мешают анализу.","plain_title":"Почему такой ответ? REGENCY CAKESTAND 3 TIER. Данный товар продавался всего 85 раз. А DOLLY GIRL LUNCH BOX 780 раз. Почему при формировании сводной таблицы формируются такие строки: Всего (10.03.2011) 72 0,85. Всего (10 COLOUR SPACEBOY PEN) 72 0,85. Нельзя ли обойтись без них. Они мешают анализу. ","creator":{"public_name":"Петр","id":618081,"is_tutor":false},"comments":[{"creator":{"public_name":"Roman Ashikov","id":226258,"is_tutor":true},"id":176457,"body":"Опишите, пожалуйста, последовательность действий по шагам, как вы пришли к такому ответу. \n\n> Почему при формировании сводной таблицы формируются такие строки: Всего (10.03.2011) 72 0,85. Всего (10 COLOUR SPACEBOY PEN) 72 0,85. Нельзя ли обойтись без них. Они мешают анализу.\n\nТут вопрос в том, каким образом вы формировали сводную таблицу. Опять же, не зная последовательность действий я не могу повторить ваше решение и помочь вам разобраться.","topic_id":88201},{"creator":{"public_name":"Ольга п","id":725111,"is_tutor":false},"id":185189,"body":"Нашла среди названных стран (Netherlands EIRE Germany Australia France) пять товаров которые продались на наибольшую сумму \nDOLLY GIRL LUNCH BOX 1290,6\nREGENCY CAKESTAND 3 TIER 968,55\nRETROSPOT LARGE MILK JUG 772,2\nCOTTON APRON PANTRY DESIGN 637,5\nSTOOL HOME SWEET HOME 624\nПроанализировала продажи этих товаров по месяцам.\nНаиболее часто продавался REGENCY CAKESTAND 3, в 9 разных месяцах (\"который заказывали чаще других в разные месяцы\"). При проверке этот ответ дает ошибку.\nНи один из пяти этих товаров не прошел Проверку.\nВ чем ошибка ? Может неправильно понято условие Задачи?\n\n\n","topic_id":88201}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}},{"id":96190,"title":"Урок. Вторая бизнес-задача—Введение в дата-аналитику\nОшибка в теории. В пункте 5 написано:\n\"5. По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. **Нам нужно найти и заменить все запятые в столбце C на точки.** Это можно сделать по аналогии с заменой знака $ на пустоту\"\n\nДолжно быть: Нам нужно найти и заменить все точки в столбце C на запятые.\n\n\n","plain_title":"Урок. Вторая бизнес-задача—Введение в дата-аналитику Ошибка в теории. В пункте 5 написано: \"5. По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все запятые в столбце C на точки. Это можно сделать по аналогии с заменой знака $ на пустоту\" Должно быть: Нам нужно найти и заменить все точки в столбце C на запятые. ","creator":{"public_name":"Елена","id":753663,"is_tutor":false},"comments":[{"creator":{"public_name":"Ivan Mamtsev","id":294764,"is_tutor":true},"id":187044,"body":"Спасибо, поправил","topic_id":96190}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Вторая бизнес-задача","entity_url":null,"active":true}}],"lesson":{"exercise":null,"units":[{"id":8260,"name":"theory","url":"/courses/data-analytics-basics/lessons/second-task/theory_unit"},{"id":8674,"name":"quiz","url":"/courses/data-analytics-basics/lessons/second-task/quiz_unit"}],"links":[{"id":422989,"name":"1000 товаров — Google Sheets","url":"https://docs.google.com/spreadsheets/d/1D4MHemsTQCIB9Z-Cw3xJL8Vk7OBqWq-USnTyMtaTj8w/copy\n"},{"id":422990,"name":"Вебинар \"Вторая бизнес-задача\"\n","url":"https://vimeo.com/813124830/4312b8b4e9?ts=0&share=copy\n"}],"ordered_units":[{"id":8260,"name":"theory","url":"/courses/data-analytics-basics/lessons/second-task/theory_unit"},{"id":8674,"name":"quiz","url":"/courses/data-analytics-basics/lessons/second-task/quiz_unit"}],"id":3665,"slug":"second-task","state":"approved","name":"Вторая бизнес-задача","course_order":500,"goal":"Учимся использовать простейшую визуализацию","self_study":null,"theory_video_provider":null,"theory_video_uid":null,"theory":"В прошлых уроках мы анализировали продажи канцелярских товаров.\n\nВ своем анализе мы опирались на таблицу с тремя доступными товарами и тремя строками на каждый месяц первого квартала 2023 года. Данных было мало, поэтому анализ был не очень реалистичный. Зато мы научились совершать первые шаги в анализе данных.\n\nВ этом уроке мы продолжим погружаться в тему. Мы будем усложнять задачу и попробуем проанализировать крупную таблицу различными способами.\n\n## Начинаем работу с большой таблицей\n\nПо ходу всего урока мы будем рассматривать [таблицу](https://docs.google.com/spreadsheets/d/1D4MHemsTQCIB9Z-Cw3xJL8Vk7OBqWq-USnTyMtaTj8w/copy) из 1000 строк. В ней отражены продажи товаров продуктового магазина в течение одного дня:\n\n\n\nВ таблице есть четыре колонки:\n\n* _Product_ — продукт\n* _Quantity_ — количество проданных товаров\n* _Price_ — цена\n* _Product_id_ — уникальный идентификатор товара\n\nАвтор сэкономил свое время и сгенерировал данные продаж с помощью сайта Mockaroo. Поэтому все названия продуктов на английском языке и цены указаны в долларах. Это сгенерированные данные, поэтому на одну и ту же товарную позицию цена может отличаться.\n\nПредставим, что нам нужно выяснить, у какого продукта максимальная цена. На него мы и ответим в этом уроке, причем разными способами.\n\n## Как анализировать данные с помощью сортировки\n\nРассмотрим сортировку — первый способ анализа. Пройдем этот процесс по шагам.\n\nСначала выясним количество строк в таблице. Для этого выделим любой столбец таблицы — например, столбец `A`:\n\n\n\nВ правом нижнем углу вы увидите цифру, которая отображает количество заполненных строк в выделенном столбце. Это количество будет включать в себя и строку с названием столбца. Вычитаем единицу и получаем заветную цифру количество строк с данными в таблице — 1000.\n\nДальше подсчитаем, сколько уникальных товаров содержит таблица. Для подсчета можно использовать функцию `COUNTUNIQUE`:\n\n\n\nТак мы выяснили, что в таблице этого урока содержится 833 уникальные записи. Значит, не все товары из списка были проданы один раз.\n\nЧтобы нам было удобнее работать с таблицей, мы отсортируем товары по названию в алфавитном порядке. Так будет нагляднее: например, мы сразу увидим, сколько раз товар А был продан сегодня. Еще так будет удобнее создавать функции, ведь обработать отсортированный список проще.\n\nОтсортируем таблицу по значениям одного столбца:\n\n1. Выделяем всю таблицу, не включая строки с названиями столбцов\n2. Открываем вкладку «Данные»\n3. На вкладке «Данные» раскрываем пункт «Сортировать диапазон»\n4. Выбираем нужный тип сортировки диапазона — нам подходит «Сортировать диапазон по столбцу `А`»\n\nТеперь таблица стала удобнее для восприятия:\n\n\n\n## Как найти товары с максимальной ценой\n\nСамый простой способ найти два товара с максимальной ценой в нашем случае — это отсортировать исходную таблицу заново, только уже по столбцу с ценой.\n\nДля этого на вкладке «Данные» мы пройдем в пункт «Расширенные настройки сортировки диапазонов». В ответ Google Sheets выведет такое окно:\n\n\n\nВ нашей таблице цена записана в столбец `С`. По нему и отсортируем весь диапазон.\n\nЕсли вы хотите отсортировать таблицу сразу по нескольким столбцам, алгоритм сортировки можно настроить тут же, добавив последовательность сортировки, нажав на кнопку «Добавить еще один столбец для сортировки».\n\nЕсли выделенные вами данные включают в себя заголовки, поставьте галочку напротив «Данные со строкой заголовка».\n\nТакже в меню расширенной сортировки вы можете выбрать, будете ли вы сортировать:\n\n* По возрастанию (от А до Я)\n* По убыванию (от Я до А)\n\nВ нашей задаче нужна сортировка по убыванию. Пока не будем обращать внимание на то, что в нашей таблице товары не сгруппированы по названию.\nНа картинке видно три продукта с наибольшими ценами:\n\n\n\nФормально, у нас есть первый ответ на поставленную бизнес-задачу. Наибольшая цена у фокаччи и апельсиновой газировки.\n\nТого же результата можно добиться и другими способами, которые мы изучим дальше в уроке.\n\n## Как анализировать данные с помощью функции\n\nКроме сортировки в Google Sheets есть еще и функция `МАКС`. Также мы умеем фиксировать ссылку на столбец и номер ячейки с помощью символа `$`.\n\nПомимо этого, мы уже узнали, что найти название товара с наибольшей ценой можно с помощью комбинации трех функций:\n\n* `ИНДЕКС`\n* `ПОИСКПОЗ`\n* `МАКС`\n\nВ прошлом уроке мы уже применяли эти формулы в таком виде:\n\n```text\n=ИНДЕКС(C2:C4;ПОИСКПОЗ(МАКС($G$2:$G$4);$G$2:$G$4;))\n```\n\nПеред применением формул нужно убрать символ `$` с помощью метода «Найти и заменить»:\n\n1. Скопируем символ `$`\n2. Нажмем сочетание горячих клавиш <kbd>Ctrl+H</kbd>\n3. В появившемся окне мы увидим поле «Заменить на». Ничего не пишем в нем и нажимаем кнопку «Заменить все»:\n\n \n\n4. Нажимаем кнопку «Готово»:\n\n \n\n5. По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все точки на запятые в столбце `C`. Это можно сделать по аналогии с заменой знака `$` на пустоту\n\nТеперь наша таблица готова. Начинаем анализ:\n\n1. Выбираем ячейку `E3` и находим в ней название товара с максимальной ценой. Формулу вы видите на картинке ниже:\n\n \n\n2. Выбираем ячейку `Е4`. Находим в ней название товара со второй по размеру ценой для диапазона, стартующего уже в третьей строке:\n\n \n\nТак мы получили достоверный ответ.\n\nТакой алгоритм применим для отсортированной таблицы. Если мы хотим проанализировать с помощью функции неотсортированную таблицу, придется применить еще один метод.\n\n## Как анализировать данные с помощью сводной таблицы\n\nСводные таблицы подходят для анализа данных в особых случаях — когда есть повторяющиеся категории товаров, по которым мы группируем таблицу.\n\nВ нашем случае повторения строк минимальны.\n\nМы могли бы проанализировать данные только повторяющихся продуктов, но пока такой цели перед нами не стоит. Просто запомним: сводные таблицы хороши в агрегации данных.\n\nПри этом они не подойдут, если агрегировать таблицу не получается — то есть когда нельзя выделить несколько категорий в данных. В таком случае мы получим ошибку, как на картинке ниже:\n\n\n\n## Как анализировать данные с помощью графика\n\nПомимо работы с таблицей, мы также можем оценить наши данные визуально. Так например, найти самые продаваемые товары можно с помощью графика или диаграммы:\n\n\n\nДля большей детализации данных на графике потребуется сузить и набор иллюстрируемых данных. Например, можно отсеять только товары с максимальной ценой или количеством проданных единиц товара.\n\n## Выводы\n\nКогда мы анализируем данные, метод анализа зависит от специфики самих данных. В нашем распоряжении уже есть несколько инструментов анализа данных, которые позволяют аналитику быть гибким в выборе метода анализа таблиц.\n"},"lessonMember":null,"courseMember":null,"course":{"start_lesson":{"exercise":null,"units":[{"id":7033,"name":"theory","url":"/courses/data-analytics-basics/lessons/intro/theory_unit"}],"links":[],"ordered_units":[{"id":7033,"name":"theory","url":"/courses/data-analytics-basics/lessons/intro/theory_unit"}],"id":3101,"slug":"intro","state":"approved","name":"Введение","course_order":100,"goal":"Знакомимся с темой курса","self_study":null,"theory_video_provider":null,"theory_video_uid":null,"theory":"Этот курс посвящен одному из важных направлений по работе с данными — аналитике.\n\nИз уроков этого курса вы узнаете:\n\n* Кто такие аналитики данных\n* Какие задачи они решают\n* Как анализ данных помогает бизнесу\n* Какие инструменты используют аналитики данных в своей работе\n\nПосле завершения данного курса вы научитесь:\n\n* Работать с Google-таблицами и использовать формулы\n* Визуализировать результаты аналитики с помощью графиков и сводных таблиц\n* Использовать разные базы данных и другие источники\n* Использовать базовый функционал Python и SQL для работы с данными\n\nТакже на курсе мы повторим основные математические понятия, которые необходимы для работы с данными. Так вы сможете создавать более оптимальные алгоритмы и сделаете свою работу более эффективной.\n\n## Зачем изучать аналитику данных\n\nЗа последние десятилетия стало использоваться все больше айти-систем. Как следствие, и объемы используемых данных увеличились в тысячи раз.\nЕще 30 лет назад система с объемом данных в 1 терабайт считалась огромной. Тогда ее могли себе позволить только крупнейшие мировые компании, а сейчас — это объем памяти в обычном домашнем компьютере. Сейчас в крупных компаниях уже используются системы с объемами в десятки петабайт — это десятки тысяч терабайт.\n\nТакие огромные объемы данных повлекли за собой развитие айти-индустрии, ведь данные нужно как-то хранить, обрабатывать и анализировать. Так появилось одно из новых направлений — работа с данными. Его можно разделить на несколько отдельных сфер:\n\n* Моделирование данных (Data Modeling)\n* Инженерия данных (Data Engineering)\n* Искусственный интеллект (Data Science)\n* Аналитика данных (Data Analysis)\n\nВ этом курсе мы подробно остановимся на последнем пункте этого списка. Обычно аналитика данных проходит пять итерационных этапов:\n\n* Определение данных, которые нужно проанализировать\n* Сбор данных\n* Очистка данных при подготовке к анализу\n* Анализ данных\n* Интерпретация результатов анализа\n\nСам анализ данных может принимать разные формы, в зависимости от вопроса, на который вы пытаетесь ответить:\n\n* Описательный анализ — «Что произошло?»\n* Диагностический анализ — «Почему это произошло?»\n* Предиктивный анализ — «Что может произойти в будущем?»\n* Предписывающий анализ — «Что нам с этим делать?»\n\nВсеми этими задачами занимается аналитик данных. Его задача — помочь бизнесу ответить на эти вопросы. Чтобы это сделать аналитику нужно знать:\n\n* Какие системы используются в том или ином бизнес-процессе\n* Какие данные находятся в этих системах\n* Как получить данные из систем\n* Что нужно сделать с этими данными, что бы они стали пригодны для обработки и анализа\n* Как анализировать данные\n* Как интерпретировать результаты и представить их в виде отчетов, графиков и прочих форм\n\nАналитик данных это очень важная и нужная роль практически в любой компании. С их помощью бизнес-подразделения компаний могут существенно облегчить себе жизнь.\nСвоевременный сбор и анализ данных помогает при анализе продаж и при планировании закупок и во многих других процессах.\n"},"id":292,"slug":"data-analytics-basics","challenges_count":3,"name":"Введение в дата-аналитику","allow_indexing":true,"state":"approved","course_state":"finished","pricing_type":"free","description":"В этом курсе вы поймете, кто такой дата-аналитик и какие задачи он выполняет. Вы узнаете больше о данных и познакомитесь с инструментами, которые используют в работе с ними. Также вы научитесь делать сводные таблицы и графики в Google Sheets. Знания из этого курса помогут выполнять базовые аналитические задачи.","kind":"basic","updated_at":"2026-02-20T20:36:36.463Z","language":"other","duration_cache":11220,"skills":["Узнаете, что такое данные и как помогают бизнесу","Разберетесь, чем занимаются аналитики данных разных направлений","Научитесь работать в Google Sheets, писать простые формулы и решать задачи с помощью графиков","Познакомитесь с SQL и напишите первый запрос к базе данных","Узнаете, как используется Python в аналитике"],"keywords":[],"lessons_count":10,"cover":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjIwNSwicHVyIjoiYmxvYl9pZCJ9fQ==--7f3b47ea43a65155e4b857969f7c4137234b5e4f/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzYwMCw0MDBdfSwicHVyIjoidmFyaWF0aW9uIn19--6067466c2912ca31a17eddee04b8cf2a38c6ad17/image.png"},"recommendedLandings":[{"stack":{"id":55,"slug":"data-analytics","title":"Аналитик данных","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":80,"duration_in_months":7},"id":98,"slug":"data-analytics","title":"Аналитик данных","subtitle":"Изучите SQL, Python, Pandas, Tableau, Superset и методы A/B-тестов.","subtitle_for_lists":"Изучите SQL, Python, Pandas, Tableau, Superset и методы A/B-тестов.","locale":"ru","current":true,"duration_in_months_text":"7 месяцев","stack_slug":"data-analytics","price_text":"от 4 395 ₽","duration_text":"7 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY1MywicHVyIjoiYmxvYl9pZCJ9fQ==--5107185de77b3481e0a836f9fc7326c4e1b77be4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Data%20extraction-pana.png"},{"stack":{"id":119,"slug":"data-analytics-basics-free","title":"Основы аналитики данных","audience":"for_beginners","start_type":"anytime","pricing_model":"free","priority":"low","kind":"track","state":"published","stack_state":"finished","order":1000,"duration_in_months":1},"id":196,"slug":"data-analytics-basics-free","title":"Основы аналитики данных","subtitle":"Изучите анализ данных, формулы и визуализацию в Google Sheets","subtitle_for_lists":"","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"data-analytics-basics-free","price_text":"Бесплатно","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk1NSwicHVyIjoiYmxvYl9pZCJ9fQ==--1c8f7302c065771c5d7e80ddb88ca12990da198b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Analytics-bro.png"},{"stack":{"id":227,"slug":"bi-analyst","title":"BI-аналитик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"not_finished","order":null,"duration_in_months":7},"id":359,"slug":"bi-analyst","title":"BI-аналитик","subtitle":"Изучите SQL, BI-инструменты и визуализацию данных","subtitle_for_lists":"Изучите SQL, BI-инструменты и визуализацию данных","locale":"ru","current":true,"duration_in_months_text":"7 месяцев","stack_slug":"bi-analyst","price_text":"от 4 395 ₽","duration_text":"7 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8175585f43b5401994e29b3ae73d76963d942512/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Browser%20stats-bro.png"},{"stack":{"id":462,"slug":"product-analyst","title":"Продуктовый аналитик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"not_finished","order":500,"duration_in_months":7},"id":591,"slug":"product-analyst","title":"Продуктовый аналитик","subtitle":"Изучите продуктовые метрики, A/B-тесты и анализ пользовательских данных","subtitle_for_lists":"Изучите продуктовые метрики, A/B-тесты и анализ пользовательских данных","locale":"ru","current":true,"duration_in_months_text":"7 месяцев","stack_slug":"product-analyst","price_text":"от 4 395 ₽","duration_text":"7 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg2MiwicHVyIjoiYmxvYl9pZCJ9fQ==--04a703ca18d7bf689064f1f3c2721058bd5564e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Statistics-bro.png"}],"lessonMemberUnit":null,"accessToLearnUnitExists":true,"accessToCourseExists":true},"url":"/courses/data-analytics-basics/lessons/second-task/theory_unit","version":"0b0c6d4ebbd40fd58630a0dd89cc25544ccdf24e","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="position:absolute;top:0rem" class=""></div><div style="max-width:var(--container-size-xl);height:100%;min-height:0rem" class=""><style data-mantine-styles="inline">.__m__-_R_5ub_{--grid-gutter:0rem;}</style><div style="height:100%;min-height:0rem" class="m_410352e9 mantine-Grid-root __m__-_R_5ub_"><div class="m_dee7bd2f mantine-Grid-inner" style="height:100%"><style data-mantine-styles="inline">.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:91.66666666666667%;--col-max-width:91.66666666666667%;}@media(min-width: 48em){.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem;display:flex" class="m_96bdd299 mantine-Grid-col __m__-_R_rdub_"><style data-mantine-styles="inline">.__m__-_R_6qrdub_{margin-top:0rem;padding-inline:var(--mantine-spacing-xs);width:100%;}@media(min-width: 48em){.__m__-_R_6qrdub_{margin-top:var(--mantine-spacing-xl);width:80%;}}@media(min-width: 62em){.__m__-_R_6qrdub_{padding-inline:var(--mantine-spacing-xl);}}</style><div style="margin-inline:auto;max-width:var(--mantine-breakpoint-xl)" class="__m__-_R_6qrdub_"><div style="color:var(--mantine-color-dimmed)" class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:calc(0.125rem * var(--mantine-scale));color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-lock "><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6"></path><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M8 11v-4a4 4 0 1 1 8 0v4"></path></svg></div><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Введение в дата-аналитику</p></div><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size);margin-bottom:var(--mantine-spacing-xl)" class="m_8a5d1357 mantine-Title-root" data-order="1">Теория: Вторая бизнес-задача</h1><script type="application/ld+json">{"@context":"https://schema.org","@type":"LearningResource","name":"Вторая бизнес-задача","inLanguage":"ru","isPartOf":{"@type":"LearningResource","name":"Введение в дата-аналитику"},"isAccessibleForFree":"False","hasPart":{"@type":"WebPageElement","isAccessibleForFree":"False","cssSelector":".paywalled"}}</script><div class=""><div style="--alert-color:var(--mantine-color-indigo-light-color);margin-bottom:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-lg)" class="m_66836ed3 mantine-Alert-root" id="mantine-_R_remqrdub_" role="alert" aria-describedby="mantine-_R_remqrdub_-body" aria-labelledby="mantine-_R_remqrdub_-title"><div class="m_a5d60502 mantine-Alert-wrapper"><div class="m_667f2a6a mantine-Alert-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-rocket "><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3"></path><path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3"></path><path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></div><div class="m_667c2793 mantine-Alert-body"><div class="m_6a03f287 mantine-Alert-title"><span id="mantine-_R_remqrdub_-title" class="m_698f4f23 mantine-Alert-label">Полный доступ к материалам</span></div><div id="mantine-_R_remqrdub_-body" class="m_7fa78076 mantine-Alert-message"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Зарегистрируйтесь и получите доступ к этому и десяткам других курсов</p><a style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-hover:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-color:var(--mantine-color-white);--button-bd:none" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="gradient" data-size="xs" href="/u/new"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Зарегистрироваться</span></span></a></div></div></div></div></div><div class="paywalled m_d08caa0 mantine-Typography-root"><p>В прошлых уроках мы анализировали продажи канцелярских товаров.</p>
<p>В своем анализе мы опирались на таблицу с тремя доступными товарами и тремя строками на каждый месяц первого квартала 2023 года. Данных было мало, поэтому анализ был не очень реалистичный. Зато мы научились совершать первые шаги в анализе данных.</p>
<p>В этом уроке мы продолжим погружаться в тему. Мы будем усложнять задачу и попробуем проанализировать крупную таблицу различными способами.</p>
<h2 id="heading-2-1">Начинаем работу с большой таблицей</h2>
<p>По ходу всего урока мы будем рассматривать <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://docs.google.com/spreadsheets/d/1D4MHemsTQCIB9Z-Cw3xJL8Vk7OBqWq-USnTyMtaTj8w/copy" rel="noopener noreferrer" target="_blank">таблицу</a> из 1000 строк. В ней отражены продажи товаров продуктового магазина в течение одного дня:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3MywicHVyIjoiYmxvYl9pZCJ9fQ==--40af388fd7fe2f4e73a789dc2de8b0c70ff00828/2.1.png" alt="image.png" loading="lazy"/></p>
<p>В таблице есть четыре колонки:</p>
<ul>
<li><em>Product</em> — продукт</li>
<li><em>Quantity</em> — количество проданных товаров</li>
<li><em>Price</em> — цена</li>
<li><em>Product_id</em> — уникальный идентификатор товара</li>
</ul>
<p>Автор сэкономил свое время и сгенерировал данные продаж с помощью сайта Mockaroo. Поэтому все названия продуктов на английском языке и цены указаны в долларах. Это сгенерированные данные, поэтому на одну и ту же товарную позицию цена может отличаться.</p>
<p>Представим, что нам нужно выяснить, у какого продукта максимальная цена. На него мы и ответим в этом уроке, причем разными способами.</p>
<h2 id="heading-2-2">Как анализировать данные с помощью сортировки</h2>
<p>Рассмотрим сортировку — первый способ анализа. Пройдем этот процесс по шагам.</p>
<p>Сначала выясним количество строк в таблице. Для этого выделим любой столбец таблицы — например, столбец <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">A</code>:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3NCwicHVyIjoiYmxvYl9pZCJ9fQ==--f1afb22d943fee7676a2349279c8b0c182d6fc8e/2.2.png" alt="image.png" loading="lazy"/></p>
<p>В правом нижнем углу вы увидите цифру, которая отображает количество заполненных строк в выделенном столбце. Это количество будет включать в себя и строку с названием столбца. Вычитаем единицу и получаем заветную цифру количество строк с данными в таблице — 1000.</p>
<p>Дальше подсчитаем, сколько уникальных товаров содержит таблица. Для подсчета можно использовать функцию <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">COUNTUNIQUE</code>:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3NSwicHVyIjoiYmxvYl9pZCJ9fQ==--fbd5f6b71a87877b8e7bc383bb726c71bb3cad7b/2.3.png" alt="image.png" loading="lazy"/></p>
<p>Так мы выяснили, что в таблице этого урока содержится 833 уникальные записи. Значит, не все товары из списка были проданы один раз.</p>
<p>Чтобы нам было удобнее работать с таблицей, мы отсортируем товары по названию в алфавитном порядке. Так будет нагляднее: например, мы сразу увидим, сколько раз товар А был продан сегодня. Еще так будет удобнее создавать функции, ведь обработать отсортированный список проще.</p>
<p>Отсортируем таблицу по значениям одного столбца:</p>
<ol>
<li>Выделяем всю таблицу, не включая строки с названиями столбцов</li>
<li>Открываем вкладку «Данные»</li>
<li>На вкладке «Данные» раскрываем пункт «Сортировать диапазон»</li>
<li>Выбираем нужный тип сортировки диапазона — нам подходит «Сортировать диапазон по столбцу <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">А</code>»</li>
</ol>
<p>Теперь таблица стала удобнее для восприятия:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3NiwicHVyIjoiYmxvYl9pZCJ9fQ==--f4c9030d3cad810e14c98f8008630ae00252b1be/2.5.png" alt="image.png" loading="lazy"/></p>
<h2 id="heading-2-3">Как найти товары с максимальной ценой</h2>
<p>Самый простой способ найти два товара с максимальной ценой в нашем случае — это отсортировать исходную таблицу заново, только уже по столбцу с ценой.</p>
<p>Для этого на вкладке «Данные» мы пройдем в пункт «Расширенные настройки сортировки диапазонов». В ответ Google Sheets выведет такое окно:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3NywicHVyIjoiYmxvYl9pZCJ9fQ==--a83fc64010797da7a77a57c2ce9bf64933a64da0/2.6.png" alt="image.png" loading="lazy"/></p>
<p>В нашей таблице цена записана в столбец <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">С</code>. По нему и отсортируем весь диапазон.</p>
<p>Если вы хотите отсортировать таблицу сразу по нескольким столбцам, алгоритм сортировки можно настроить тут же, добавив последовательность сортировки, нажав на кнопку «Добавить еще один столбец для сортировки».</p>
<p>Если выделенные вами данные включают в себя заголовки, поставьте галочку напротив «Данные со строкой заголовка».</p>
<p>Также в меню расширенной сортировки вы можете выбрать, будете ли вы сортировать:</p>
<ul>
<li>По возрастанию (от А до Я)</li>
<li>По убыванию (от Я до А)</li>
</ul>
<p>В нашей задаче нужна сортировка по убыванию. Пока не будем обращать внимание на то, что в нашей таблице товары не сгруппированы по названию.
На картинке видно три продукта с наибольшими ценами:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI3OCwicHVyIjoiYmxvYl9pZCJ9fQ==--81d05c02fae083180c8a0bed334da070c44e2b59/2.7.png" alt="image.png" loading="lazy"/></p>
<p>Формально, у нас есть первый ответ на поставленную бизнес-задачу. Наибольшая цена у фокаччи и апельсиновой газировки.</p>
<p>Того же результата можно добиться и другими способами, которые мы изучим дальше в уроке.</p>
<h2 id="heading-2-4">Как анализировать данные с помощью функции</h2>
<p>Кроме сортировки в Google Sheets есть еще и функция <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">МАКС</code>. Также мы умеем фиксировать ссылку на столбец и номер ячейки с помощью символа <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">$</code>.</p>
<p>Помимо этого, мы уже узнали, что найти название товара с наибольшей ценой можно с помощью комбинации трех функций:</p>
<ul>
<li><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">ИНДЕКС</code></li>
<li><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">ПОИСКПОЗ</code></li>
<li><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">МАКС</code></li>
</ul>
<p>В прошлом уроке мы уже применяли эти формулы в таком виде:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">=ИНДЕКС(C2:C4;ПОИСКПОЗ(МАКС($G$2:$G$4);$G$2:$G$4;))</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>Перед применением формул нужно убрать символ <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">$</code> с помощью метода «Найти и заменить»:</p>
<ol>
<li>
<p>Скопируем символ <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">$</code></p>
</li>
<li>
<p>Нажмем сочетание горячих клавиш <kbd>Ctrl+H</kbd></p>
</li>
<li>
<p>В появившемся окне мы увидим поле «Заменить на». Ничего не пишем в нем и нажимаем кнопку «Заменить все»:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4MCwicHVyIjoiYmxvYl9pZCJ9fQ==--57815c1407c2e386ffbd69f8371a8fa354a10071/2.8.png" alt="image.png" loading="lazy"/></p>
</li>
<li>
<p>Нажимаем кнопку «Готово»:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8deed02d9b6c1e3ccd90063181bcb6dbcb8bb1a2/2.9.png" alt="image.png" loading="lazy"/></p>
</li>
<li>
<p>По умолчанию в Google Sheets целая и десятичная часть чисел разделены запятой. Нам нужно найти и заменить все точки на запятые в столбце <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">C</code>. Это можно сделать по аналогии с заменой знака <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">$</code> на пустоту</p>
</li>
</ol>
<p>Теперь наша таблица готова. Начинаем анализ:</p>
<ol>
<li>
<p>Выбираем ячейку <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">E3</code> и находим в ней название товара с максимальной ценой. Формулу вы видите на картинке ниже:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4MiwicHVyIjoiYmxvYl9pZCJ9fQ==--250d63d24871a072f24bc78f7943ecdd16c06e1a/2.10.png" alt="image.png" loading="lazy"/></p>
</li>
<li>
<p>Выбираем ячейку <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Е4</code>. Находим в ней название товара со второй по размеру ценой для диапазона, стартующего уже в третьей строке:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4MywicHVyIjoiYmxvYl9pZCJ9fQ==--ed91d10b2c00b74509b4a933f2bfb965203bd816/2.11.png" alt="image.png" loading="lazy"/></p>
</li>
</ol>
<p>Так мы получили достоверный ответ.</p>
<p>Такой алгоритм применим для отсортированной таблицы. Если мы хотим проанализировать с помощью функции неотсортированную таблицу, придется применить еще один метод.</p>
<h2 id="heading-2-5">Как анализировать данные с помощью сводной таблицы</h2>
<p>Сводные таблицы подходят для анализа данных в особых случаях — когда есть повторяющиеся категории товаров, по которым мы группируем таблицу.</p>
<p>В нашем случае повторения строк минимальны.</p>
<p>Мы могли бы проанализировать данные только повторяющихся продуктов, но пока такой цели перед нами не стоит. Просто запомним: сводные таблицы хороши в агрегации данных.</p>
<p>При этом они не подойдут, если агрегировать таблицу не получается — то есть когда нельзя выделить несколько категорий в данных. В таком случае мы получим ошибку, как на картинке ниже:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4NCwicHVyIjoiYmxvYl9pZCJ9fQ==--1a6bcd681c0c14ccef27576fdc2272aa4feeebb0/2.12.png" alt="image.png" loading="lazy"/></p>
<h2 id="heading-2-6">Как анализировать данные с помощью графика</h2>
<p>Помимо работы с таблицей, мы также можем оценить наши данные визуально. Так например, найти самые продаваемые товары можно с помощью графика или диаграммы:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjI4NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7626308b76a0680fe047d8a07b14607230c3aeb/2.13.png" alt="image.png" loading="lazy"/></p>
<p>Для большей детализации данных на графике потребуется сузить и набор иллюстрируемых данных. Например, можно отсеять только товары с максимальной ценой или количеством проданных единиц товара.</p>
<h2 id="heading-2-7">Выводы</h2>
<p>Когда мы анализируем данные, метод анализа зависит от специфики самих данных. В нашем распоряжении уже есть несколько инструментов анализа данных, которые позволяют аналитику быть гибким в выборе метода анализа таблиц.</p></div><div style="margin-block:var(--mantine-spacing-xl)" class=""><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md)" class="m_8a5d1357 mantine-Title-root" data-order="2">Рекомендуемые программы</h2><style data-mantine-styles="inline">.__m__-_R_2mremqrdub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_2mremqrdub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_2mremqrdub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/data-analytics?promo_name=programs_list&promo_position=course&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">7 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Аналитик данных</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите SQL, Python, Pandas, Tableau, Superset и методы A/B-тестов.</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY1MywicHVyIjoiYmxvYl9pZCJ9fQ==--5107185de77b3481e0a836f9fc7326c4e1b77be4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Data%20extraction-pana.png" alt="Аналитик данных" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 395 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/data-analytics-basics-free?promo_name=programs_list&promo_position=course&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Основы аналитики данных</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk1NSwicHVyIjoiYmxvYl9pZCJ9fQ==--1c8f7302c065771c5d7e80ddb88ca12990da198b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Analytics-bro.png" alt="Основы аналитики данных" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Бесплатно</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/bi-analyst?promo_name=programs_list&promo_position=course&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">7 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">BI-аналитик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите SQL, BI-инструменты и визуализацию данных</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--8175585f43b5401994e29b3ae73d76963d942512/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Browser%20stats-bro.png" alt="BI-аналитик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 395 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/product-analyst?promo_name=programs_list&promo_position=course&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">7 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Продуктовый аналитик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите продуктовые метрики, A/B-тесты и анализ пользовательских данных</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDg2MiwicHVyIjoiYmxvYl9pZCJ9fQ==--04a703ca18d7bf689064f1f3c2721058bd5564e4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Statistics-bro.png" alt="Продуктовый аналитик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 395 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=course&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:8.333333333333334%;--col-max-width:8.333333333333334%;}@media(min-width: 48em){.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem" class="m_96bdd299 mantine-Grid-col __m__-_R_1bdub_"><div style="margin-inline:var(--mantine-spacing-xs)" class="mantine-visible-from-sm"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-lg);text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/data-analytics-basics/lessons/second-task/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><span style="margin-inline-end:var(--mantine-spacing-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дальше</span>→</span></span></a><a style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Навигация по теме</span><span class="m_57492dcc mantine-NavLink-description">Теория</span></div><span class="m_690090b5 mantine-NavLink-section" data-position="right"></span></a><div style="margin-block:var(--mantine-spacing-lg)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="margin-block:var(--mantine-spacing-lg)" class=""><div style="justify-content:space-between;margin-bottom:calc(0.1875rem * var(--mantine-scale));color:var(--mantine-color-dimmed);font-size:var(--mantine-font-size-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_qimrbdub_"><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Завершено</p><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">0 / 10</p></div><div style="--progress-size:var(--progress-size-sm)" class="m_db6d6462 mantine-Progress-root" data-size="sm"><div style="--progress-section-size:0%;--progress-section-color:var(--mantine-color-gray-filled)" class="m_2242eb65 mantine-Progress-section" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" aria-valuetext="0%"></div></div></div><button style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root" type="button"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Обсуждения (архив)</span><span class="m_57492dcc mantine-NavLink-description"></span></div></button><div style="--toc-bg:var(--mantine-color-blue-light);--toc-color:var(--mantine-color-blue-light-color);--toc-size:var(--mantine-font-size-sm);--toc-radius:var(--mantine-radius-sm);margin-top:var(--mantine-spacing-xl)" class="m_bcaa9990 mantine-TableOfContents-root" data-variant="light" data-size="sm"></div></div><div class="mantine-hidden-from-sm"><div style="--stack-gap:0rem;--stack-align:stretch;--stack-justify:flex-start" class="m_6d731127 mantine-Stack-root"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-xs);padding:0rem;text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/data-analytics-basics/lessons/second-task/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">→</span></span></a><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-disabled="true" type="button" disabled=""><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></span></button><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></span></button></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-CdBlNCiQ.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-nkZBEvfU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>