Автоматизация Sheets: как парсить сайты без программиста
https://vitoandolini.livejournal.com/629501.html
Хотите загружать курсы валют или цены конкурентов прямо в таблицу?
Инструменты:
1.=IMPORTHTML() – парсит таблицы с сайтов:
=IMPORTHTML("https://www.example.com/rates"; "table"; 1)
2.=IMPORTXML() – для сложных данных (XPath):
=IMPORTXML("https://news.com (https://news.com/)"; "//h2/a") // заголовки новостей
3.Google Apps Script – если нужно что-то сложнее (например, парсинг API).
⚠️ Важно: Некоторые сайты блокируют такие запросы.
👉 Попробуйте: Загрузите курс доллара с ЦБ РФ и поделитесь скрином в комментах!
https://vitoandolini.livejournal.com/629501.html
Хотите загружать курсы валют или цены конкурентов прямо в таблицу?
Инструменты:
1.=IMPORTHTML() – парсит таблицы с сайтов:
=IMPORTHTML("https://www.example.com/rates"; "table"; 1)
2.=IMPORTXML() – для сложных данных (XPath):
=IMPORTXML("https://news.com (https://news.com/)"; "//h2/a") // заголовки новостей
3.Google Apps Script – если нужно что-то сложнее (например, парсинг API).
⚠️ Важно: Некоторые сайты блокируют такие запросы.
👉 Попробуйте: Загрузите курс доллара с ЦБ РФ и поделитесь скрином в комментах!
Как собрать данные из 100 Google Forms в одну таблицу
https://vitoandolini.livejournal.com/629568.html
Проблема: У вас есть формы от разных филиалов, а сводить вручную — боль.
Решение:
Откройте таблицу с ответами формы → «Инструменты» → «Редактор скриптов».
Вставьте код:
function mergeForms() {
const sheets = ["Филиал 1", "Филиал 2"]; // названия листов
let result = [];
sheets.forEach(sheet => {
const data = SpreadsheetApp.getActive().getSheetByName(sheet).getDataRange().getValues();
result = result.concat(data.slice(1)); // убираем заголовки
});
SpreadsheetApp.getActive().getSheetByName("Итог").getRange(1, 1, result.length, result[0].length).setValues(result);
}
Запустите скрипт — все данные появятся на листе «Итог».
👉 Бонус: Как автоматизировать это по расписанию? Пишите «+» в комментах — сделаю гайд!
https://vitoandolini.livejournal.com/629568.html
Проблема: У вас есть формы от разных филиалов, а сводить вручную — боль.
Решение:
Откройте таблицу с ответами формы → «Инструменты» → «Редактор скриптов».
Вставьте код:
function mergeForms() {
const sheets = ["Филиал 1", "Филиал 2"]; // названия листов
let result = [];
sheets.forEach(sheet => {
const data = SpreadsheetApp.getActive().getSheetByName(sheet).getDataRange().getValues();
result = result.concat(data.slice(1)); // убираем заголовки
});
SpreadsheetApp.getActive().getSheetByName("Итог").getRange(1, 1, result.length, result[0].length).setValues(result);
}
Запустите скрипт — все данные появятся на листе «Итог».
👉 Бонус: Как автоматизировать это по расписанию? Пишите «+» в комментах — сделаю гайд!
Мем: Когда Sheets предложил ‘Исправить формулу’, но сломал всё
https://vitoandolini.livejournal.com/629872.html
https://vitoandolini.livejournal.com/629872.html
*«Я: Всё проверил 10 раз. Sheets: Может, заменить =SUMM на =SUM? Я: НЕТ, ЭТО НЕ ТО»*
«Знакомо? 😂 Совет: отключайте автоисправление в «Настройки» → «Общие» → «Формулы»
«Знакомо? 😂 Совет: отключайте автоисправление в «Настройки» → «Общие» → «Формулы»
Практика: посчитайте NPS в Sheets за 5 минут
https://vitoandolini.livejournal.com/630086.html
NPS (Net Promoter Score) — ключевой метрика лояльности. Как её считать:
Данные: столбец с оценками 0-10 от клиентов.
Формула:
=((COUNTIF(A2:A100; ">=9") - COUNTIF(A2:A100; "<=6")) / COUNTA(A2:A100) * 100
Визуализация: Диаграмма-радар для распределения оценок.
👉 Задание: Подсчитайте NPS для данных ниже и напишите результат в комментах!
Оценки: 10, 8, 5, 9, 7, 10, 4
https://vitoandolini.livejournal.com/630086.html
NPS (Net Promoter Score) — ключевой метрика лояльности. Как её считать:
Данные: столбец с оценками 0-10 от клиентов.
Формула:
=((COUNTIF(A2:A100; ">=9") - COUNTIF(A2:A100; "<=6")) / COUNTA(A2:A100) * 100
Визуализация: Диаграмма-радар для распределения оценок.
👉 Задание: Подсчитайте NPS для данных ниже и напишите результат в комментах!
Оценки: 10, 8, 5, 9, 7, 10, 4
🚀 Чек-лист: «5 способов очистить данные в Google Sheets, которые сэкономят вам часы»
https://vitoandolini.livejournal.com/630275.html
Грязные данные — причина 80% ошибок в отчётах. Вот как быстро их «почистить» без магии:
1️⃣ Удаляем дубликаты
=UNIQUE(A2:B100) // Оставляет только уникальные строки
Пример: После обработки 1000 строк осталось 720 — 28% мусора ушли!
2️⃣ Заменяем #N (https://www.livejournal.com/rsearch/?tags=%23N)/A и другие ошибки
=IFERROR(VLOOKUP(...); "Нет данных") // Вместо ошибки — понятный текст
3️⃣ Разделяем «слипшиеся» данные
=SPLIT(A2; ",") // Разбивает "Яблоки,1200" на две колонки
4️⃣ Убиваем лишние пробелы
=TRIM(A2) // Превращает " Москва " в "Москва"
5️⃣ Автоматизируем через скрипт Инструменты → Редактор скриптов → Вставить код:
function cleanData() { const sheet = SpreadsheetApp.getActive().getSheetByName("Данные"); sheet.getDataRange().trimWhitespace().removeDuplicates(); }
💡 Задание: Попробуйте любой способ и напишите в комментах, сколько времени сэкономили!
https://vitoandolini.livejournal.com/630275.html
Грязные данные — причина 80% ошибок в отчётах. Вот как быстро их «почистить» без магии:
1️⃣ Удаляем дубликаты
=UNIQUE(A2:B100) // Оставляет только уникальные строки
Пример: После обработки 1000 строк осталось 720 — 28% мусора ушли!
2️⃣ Заменяем #N (https://www.livejournal.com/rsearch/?tags=%23N)/A и другие ошибки
=IFERROR(VLOOKUP(...); "Нет данных") // Вместо ошибки — понятный текст
3️⃣ Разделяем «слипшиеся» данные
=SPLIT(A2; ",") // Разбивает "Яблоки,1200" на две колонки
4️⃣ Убиваем лишние пробелы
=TRIM(A2) // Превращает " Москва " в "Москва"
5️⃣ Автоматизируем через скрипт Инструменты → Редактор скриптов → Вставить код:
function cleanData() { const sheet = SpreadsheetApp.getActive().getSheetByName("Данные"); sheet.getDataRange().trimWhitespace().removeDuplicates(); }
💡 Задание: Попробуйте любой способ и напишите в комментах, сколько времени сэкономили!
Разбор ошибки: «Почему VLOOKUP не находит значения?»
https://vitoandolini.livejournal.com/630753.html
Подписчик прислал файл с ошибкой: #N (https://www.livejournal.com/rsearch/?tags=%23N)/A в VLOOKUP. Вот что было не так:
Ошибка:
В исходной таблице значения были как текст ("100"), а в поиске — как число (100).
Решение:
1.Привести всё к тексту:
=VLOOKUP(TO_TEXT(A2); диапазон; столбец; 0)
2.Или к числам:
=VLOOKUP(VALUE(A2); диапазон; столбец; 0)
Как избежать:
Проверяйте формат ячеек (Формат → Число).
Используйте =ISNUMBER() или =ISTEXT().
👉 Проверьте себя: Есть ли у вас формулы, которые могут сломаться из-за этого?
https://vitoandolini.livejournal.com/630753.html
Подписчик прислал файл с ошибкой: #N (https://www.livejournal.com/rsearch/?tags=%23N)/A в VLOOKUP. Вот что было не так:
Ошибка:
В исходной таблице значения были как текст ("100"), а в поиске — как число (100).
Решение:
1.Привести всё к тексту:
=VLOOKUP(TO_TEXT(A2); диапазон; столбец; 0)
2.Или к числам:
=VLOOKUP(VALUE(A2); диапазон; столбец; 0)
Как избежать:
Проверяйте формат ячеек (Формат → Число).
Используйте =ISNUMBER() или =ISTEXT().
👉 Проверьте себя: Есть ли у вас формулы, которые могут сломаться из-за этого?
Интеграция: «Как подключить ChatGPT к Google Sheets»
https://vitoandolini.livejournal.com/631036.html
Хотите, чтобы ИИ помогал вам анализировать данные? Вот как:
Откройте редактор скриптов: Инструменты → Редактор скриптов.
Вставьте код:
function callGPT(prompt) {
const apiKey = "ВАШ_API_КЛЮЧ";
const url = "https://api.openai.com/v1/chat/completions";
const options = {
method: "post",
headers: { "Authorization": `Bearer ${apiKey}` },
payload: JSON.stringify({ model: "gpt-3.5-turbo", messages: [{role: "user", content: prompt}] })
};
const response = UrlFetchApp.fetch(url, options);
return JSON.parse(response).choices[0].message.content;
}
Используйте в таблице:
=callGPT("Проанализируй этот текст: " & A2)
Пример:
Ячейка A2: «Клиент жалуется на доставку»
Формула: =callGPT("Предложи решение для: " & A2)
Вывод: «Извинитесь и предложите скидку 10%».
⚠️ Важно: Не публикуйте API-ключ в открытом доступе!
👉 Кто попробует? Делитесь результатами в комментах!
https://vitoandolini.livejournal.com/631036.html
Хотите, чтобы ИИ помогал вам анализировать данные? Вот как:
Откройте редактор скриптов: Инструменты → Редактор скриптов.
Вставьте код:
function callGPT(prompt) {
const apiKey = "ВАШ_API_КЛЮЧ";
const url = "https://api.openai.com/v1/chat/completions";
const options = {
method: "post",
headers: { "Authorization": `Bearer ${apiKey}` },
payload: JSON.stringify({ model: "gpt-3.5-turbo", messages: [{role: "user", content: prompt}] })
};
const response = UrlFetchApp.fetch(url, options);
return JSON.parse(response).choices[0].message.content;
}
Используйте в таблице:
=callGPT("Проанализируй этот текст: " & A2)
Пример:
Ячейка A2: «Клиент жалуется на доставку»
Формула: =callGPT("Предложи решение для: " & A2)
Вывод: «Извинитесь и предложите скидку 10%».
⚠️ Важно: Не публикуйте API-ключ в открытом доступе!
👉 Кто попробует? Делитесь результатами в комментах!
Горячие клавиши: «7 комбинаций, которые ускорят работу»
https://vitoandolini.livejournal.com/631042.html
Запоминайте:
Ctrl + Shift + 1 → формат числа.
Ctrl + Enter → заполнить выделенные ячейки.
Alt + Shift + 7 → применить фильтр.
Ctrl + D → скопировать сверху.
Ctrl + R → скопировать слева.
Ctrl + ; → вставить текущую дату.
Ctrl + Shift + : → вставить время.
Проверка:
Закрепите одну комбинацию сегодня — и используйте её 5 раз!
👉 Какие сочетания вы уже применяете?
https://vitoandolini.livejournal.com/631042.html
Запоминайте:
Ctrl + Shift + 1 → формат числа.
Ctrl + Enter → заполнить выделенные ячейки.
Alt + Shift + 7 → применить фильтр.
Ctrl + D → скопировать сверху.
Ctrl + R → скопировать слева.
Ctrl + ; → вставить текущую дату.
Ctrl + Shift + : → вставить время.
Проверка:
Закрепите одну комбинацию сегодня — и используйте её 5 раз!
👉 Какие сочетания вы уже применяете?
Шаблон: «Дашборд продаж за 5 шагов»
https://vitoandolini.livejournal.com/631387.html
Как визуализировать продажи без программирования:
Соберите данные через =QUERY():
=QUERY(A1:D100; "SELECT A, SUM(D) GROUP BY A LABEL SUM(D) 'Итого'")
Постройте диаграмму: Выделите данные → «Вставка» → «Диаграмма».
Добавьте фильтры: Выделите заголовки → «Данные» → «Фильтры».
Настройте обновление: Инструменты → Редактор скриптов → триггеры (например, раз в день).
Поделитесь: «Файл» → «Опубликовать в интернете» → ссылка будет всегда актуальна.
👉 Дополните дашборд своей фишкой и киньте скрин!
https://vitoandolini.livejournal.com/631387.html
Как визуализировать продажи без программирования:
Соберите данные через =QUERY():
=QUERY(A1:D100; "SELECT A, SUM(D) GROUP BY A LABEL SUM(D) 'Итого'")
Постройте диаграмму: Выделите данные → «Вставка» → «Диаграмма».
Добавьте фильтры: Выделите заголовки → «Данные» → «Фильтры».
Настройте обновление: Инструменты → Редактор скриптов → триггеры (например, раз в день).
Поделитесь: «Файл» → «Опубликовать в интернете» → ссылка будет всегда актуальна.
👉 Дополните дашборд своей фишкой и киньте скрин!