Обучение, заказы, реклама: @namokonov
С 2017 года приручаем Google Таблицы и Google Apps Script, создаём ботов в Telegram и Max.
Реальные кейсы и автоматизация.
Оглавление: clck.ru/3UJwhf
РКН: clck.ru/3F3u9M
Post #585
11.6K

GO @google_sheets
Showing posts older than #586 · Back to latest



OFFSET и LIMIT, они определяют, сколько строк отступить сверху при выводе массива и сколько строк вывести всего. MATCH / ПОИСКПОЗ находим позицию Яблок в столбце A=MATCH("яблоки" ; A:A ; 0) //5="limit 3 offset " & MATCH("яблоки" ; A:A ; 0) //limit 3 offset 5=QUERY(A1:C11; "limit 3 offset " & MATCH("яблоки" ; A:A ; 0) - 1 ; 0) // -1 чтобы строка с яблоками также попала в выборкуДано: список специалистов с их ставками за час работы.Задача: одной формулой получить стоимость всего проекта.Решение: будем перемножать весь диапазон с количеством часов специалистов на функцию ВПР, которая вернет массив с их ставками:=СУММПРОИЗВ(B2:F2;ВПР($B$1:$F$1;'Специалисты и ставки'!$A:$B;2;0))
СУММПРОИЗВ / SUMPRODUCT перемножает элементы массивов и возвращает сумму этих произведений.ВПР, которая по заголовкам столбцов подтянет ставки из другого листа. ВПР меньше вероятность ошибки, чем если бы мы просто перемножали два массива (такая схема возможна только если порядок и количество специалистов на 2 листах строго совпадают). ВПР на листе со ставками может быть любое количество специалистов в любом порядке, а подтягивать их можно на любое количество листов с работами, где будет только часть специалистов — опять же, в любой последовательности.
Forwarded from Google Таблицы
=FILTER(A:C; C:C < 2000) — все значения меньше 2000=+FILTER(A:C; C:C < 2000) — первое значение меньше 2000
/**
* Выводим листы и диапазоны
* @customfunction
*/
function листы_диапазоны() {
return [['Лист', 'Диапазон с данными', 'Границы листа']].concat(SpreadsheetApp.getActive().getSheets()
.map(g => [g.getName(), g.getDataRange().getA1Notation(), g.getRange(1, 1, g.getMaxRows(), g.getMaxColumns()).getA1Notation()]))
}листы_диапазоны.=IF(A1; листы_диапазоны())data-large="/upload/d5/b4/19/37/d.jpeg" class="my-foto">data-large=" и до "data-large="(.+?)"
05.06.2020, далее до 15.06.2025 или чего-то подобного)ТЕКСТ(МЕСЯЦ(A1);"00" )&"." &ГОД(A1)
И далее полученный результат можно подставить, например, в QUERY - с помощью contains будем находить все строки, в которых этот месяц и год через точку встречаются в тексте.=QUERY(диапазон_с_данными;"select * WHERE G contains '"&ТЕКСТ(МЕСЯЦ(A1);"00")&"."&ГОД(A1)&"'";1)
Таблица с примеромfindRow находим номер последней строки со вчерашней датой, далее с помощью delProtection удаляем защищенный диапазон, далее с помощью createProtection создаём диапазон начиная со второй строки листа и по последнюю строку со вчерашней датой.a3, b3a5:c укажите таблицы, листы и диапазоны, в которых требуется произвести заменуd5:d отметьте чекбоксами те строки, которые требуется обработать сейчас