# Практика 8 · Подготовка данных в Google Таблицах

1. Распакуйте архив в постоянную папку lesson_data_cleaning.
2. Создайте пустую Google Таблицу leads_cleaning.
3. Файл → Импортировать → Добавить → data/leads_dirty.csv. Цель: «Заменить текущий лист», разделитель «Запятая», флажок «Преобразовывать текст в числа, даты и формулы» снят.
4. Переименуйте лист в source. Значения на нём не редактируйте.
5. Добавьте лист leads_clean, введите девять заголовков в A1:I1 и формулы во вторую строку по презентации.
6. Для второй выгрузки откройте лист source и импортируйте data/leads_dirty_v2.csv с теми же настройками. Новый лист и новую таблицу не создавайте.
7. Откройте лист leads_clean и скачайте его: Файл → Скачать → CSV. Файл придёт в «Загрузки» как «leads_cleaning - leads_clean.csv»; перенесите его в result и переименуйте в leads_clean.csv.
8. Чтобы повторить упражнение с начала, импортируйте на лист source файл leads_dirty_v1_backup.csv.

Все данные вымышленные. Это учебный CSV, настоящие заявки в нём не используются. Короткие REQ-001…REQ-008 — метки строк для чтения; их не отправляют в приёмник темы 7, который ожидает UUID.

V1: 5 строк, 8 исходных столбцов, одна ошибочная дата (REQ-003).
V2: 8 строк, 8 исходных столбцов, две ошибочные даты (REQ-003 и REQ-008).
Результат: 9 столбцов, столько же строк. Ошибочные даты остаются видимыми как #VALUE!; ЕСЛИОШИБКА не применяется.

Формулы второй строки leads_clean (региональные настройки таблицы — Россия, разделитель аргументов — точка с запятой):

A2  =ARRAYFORMULA(ЕСЛИ(source!A2:A="";;СЖПРОБЕЛЫ(source!A2:A)))
B2  =ARRAYFORMULA(ЕСЛИ(source!B2:B="";;ЗНАЧЕН(СЖПРОБЕЛЫ(source!B2:B))))  формат столбца: Дата и время
C2  =ARRAYFORMULA(ЕСЛИ(source!C2:C="";;СЖПРОБЕЛЫ(ПЕЧСИМВ(source!C2:C))))
D2  =ARRAYFORMULA(ЕСЛИ(source!D2:D="";;СЖПРОБЕЛЫ(ПЕЧСИМВ(source!D2:D))))
E2  =ARRAYFORMULA(ЕСЛИ(source!E2:E="";;СЖПРОБЕЛЫ(ПЕЧСИМВ(source!E2:E))))
F2  =ARRAYFORMULA(ЕСЛИ(source!F2:F="";;LET(v;СТРОЧН(СЖПРОБЕЛЫ(SPLIT(source!F2:F;"|")));ЕСЛИ(v="tg";"telegram";v))))
H2  =ARRAYFORMULA(ЕСЛИ(source!G2:G="";;СТРОЧН(СЖПРОБЕЛЫ(ПЕЧСИМВ(source!G2:G)))))
I2  =ARRAYFORMULA(ЕСЛИ(source!H2:H="";;СТРОЧН(СЖПРОБЕЛЫ(ПЕЧСИМВ(source!H2:H)))))
Лист check, ячейка A1 (не на листе leads_clean, иначе проверка попадёт в скачанный CSV):
A1  =ЕСЛИ(JOIN(",";source!A1:H1)="request_id,created_at,name,email,direction,source_medium,utm_campaign,status";"структура source: OK";"СТОП: изменились столбцы source")

Столбец G заполняет формула из F2; в G2 и ниже ничего не вводите.
СЖПРОБЕЛЫ в Google Таблицах убирает пробелы по краям и сжимает повторные пробелы внутри: « Иван  Тестов » → «Иван Тестов». ПЕЧСИМВ удаляет управляющие символы; на v1 видимого изменения нет.
Имя и email в нижний регистр не переводятся.

Контроль REQ-006: Елена / telegram / social / lesson08 / new.
Контроль REQ-007: Максим / vk / social / lesson08 / done.
