2 Oct 2025, 17:11 UTC107 views2 reactionsread 11 August 2026 Генерируем N случайных чисел (от 1 до N) без повторов
Алгоритм такой:
1) Генерируем N случайных чисел. Можно с повторами. Подойдёт RANDARRAY(N)
2) Генерируем N последовательных чисел. Подойдет SEQUENCE(). Эта последовательность - без повторов.
3) Сортируем оба столбца одновременно по столбцу со случайными числами. При этом случайный столбец сортируется, а последовательный столбец перемешивается. Тут нужна SORT().
4)…
👍2
2 Sept 2025, 10:33 UTC114 views4 reactionsread 11 August 2026 Photo
А во сколько лет вы узнали...что в VBA можно установить точку отсчёта для индексов. И не ломать голову с массивами "от 1"
🌚2😁2
29 Jul 2025, 23:33 UTC123 views7 reactionsread 11 August 2026 Нормализация данных на примере номера телефона
Если пользователь может вводить данные - он введет их неправильно. Это правило работает всегда. Особенная боль - номера телефонов. Обычно они содержат скобки, тире, пробелы, пояснения и прочий мусор. Многие по старой привычке добавляют 8 в начале, кто-то начинает с 7 и т.п.
Самый простой алгоритм нормализовать телефон
1) Удалить в нем все не-цифры:
REGEXREPLACE(phones_r…
👍5👾1🔥1
28 Jul 2025, 12:03 UTC98 views5 reactionsread 11 August 2026 Photo
Текстовый SPARKLINE
🔥4👍1
28 Jul 2025, 12:02 UTC222 views5 reactionsread 11 August 2026 Кастомный текстовый SPARKLINE
Если обычный SPARKLINE() не подходит, можно воспользоваться старым трюком - просто нарисовать прогрессбар текстом. Суть проста - выводим val символов (заполненная часть), выводим (max-val) символов пустоты(незаполненная часть). При желании - добавляем текстовую часть. Преимущество такого подхода - можно сделать любой кастомный вариант. Изменить надписи, выводить текстовую часть в любом …
🔥3👍1🆒1
17 Jul 2025, 14:31 UTC75 views3 reactionsread 11 August 2026 Rainmeter. Часть 1. dll плагин.
Не про гугл таблицы, но про программирование.
В 4-5 лет на вопрос: "Вырастешь, кем станешь?" я однозначно говорил "Программистом". Мотивация была железобетонная: "Буду делать игры для Dendy и играть в них". Сейчас как раз тот момент, когда можно писать софт, если его нет, или функционала недостаточно.
Есть приложение Rainmeter - кастомизатор рабочего стола. Функционал расширяется dll…
👍1🔥1🆒1
14 Jul 2025, 12:21 UTC174 viewsread 11 August 2026 Photo
Сходимость Монте-Карло
14 Jul 2025, 12:20 UTC204 viewsread 11 August 2026 Считаем пи в таблицах
Упражняемся в функциях и считаем число пи в таблицах
1) Первый способ - разложение в ряд
Формула очередного члена ряда:
Xn(n) = 2 / ((4*n+1)*(4*n+3)
Если взять n от 0 и суммировать получившиеся числа, то в конце концов получим pi/4
Дальше просто суммируем и умножаем на 4.
Уже на 20м шаге сумма хорошо сходится и погрешность относительно встроенного ПИ() всего 0,8%
Формула:
=let(
description; "…
10 Jul 2025, 01:27 UTC59 viewsread 11 August 2026 Заметка про пользовательские меню.
Для создания меню обычно применяется код вида:
function onOpen(event) {
SpreadsheetApp.getUi()
.createMenu("Меню")
.addItem("Функция 1", "func1")
.addItem("Функция 2", "func2")
.addToUi();
};
Как сделать это лучше?
1) Вместо "func1" пишем func1.name. Чем это лучше? При переименовывании в редакторе кода через F2, это имя меняется везде. Позволит избежать ошибки, …
8 Jul 2025, 21:33 UTC49 views1 reactionsread 11 August 2026 Каждый раз пишу заготовку onEdit и забываю сохранить куда-то. Тут работаем только если это лист Config.sheetNames.data (про Config расскажу потом) и редактируем A столбец начиная со 2й строки и ниже.
/**
* Обработчик события редактирования таблицы
* @author Boew Grigory (@ProgrammerForever)
* @see https://developers.google.com/apps-script/guides/triggers/events?hl=ru
* @param {Object} event - Объект события редак…
👍1
8 Jul 2025, 19:34 UTC46 viewsread 11 August 2026 /**
* Обновляет метаданные и вопросы формы Google Forms
*
* Функция открывает форму по ID или URL, затем обновляет:
* - Заголовок, описание, сообщения формы
* - Вопросы (совпадающие по ID) с новыми заголовками и пояснениями
*
* @author Boew Grigory (@ProgrammerForever)
*
* @param {Object} params - Объект параметров
* @param {string} [params.formId] - ID формы Google Forms
* @param {string} [params.formUrl]…
8 Jul 2025, 19:33 UTC42 viewsread 11 August 2026 /**
* Извлекает структуру вопросов и метаданные формы Google Forms
*
* Функция открывает форму по указанному ID или URL, затем собирает:
* - Идентификатор и заголовок формы
* - Описание формы
* - Сообщения подтверждения и закрытия формы
* - Список вопросов с их ID, заголовками и пояснительным текстом
*
* @author Boew Grigory (@ProgrammerForever)
*
* @param {Object} params - Параметры для доступа к форме
*…
Showing the 12 most recent of 20 posts we hold for @sheets_snippets. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.