#GoogleТаблицы — это аналог #Excel с веб-интерфейсом и возможностями для удобной совместной работы. Они похожи, и все же в Таблицах есть свои особенности, функции, плюсы и минусы. Работать в Google Таблицах просто и мы покажем как.
function easy_post(){
const url = 'https://...' //ссылка, которую сокращаем
const token = '4d280..' //наш токен
let params = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({"long_url": url}),
'headers': {
'Authorization': 'Bearer ' + token,
}
};
var r = UrlFetchApp.fetch('https://api-ssl.bitly.com/v4/shorten', params);
r = JSON.parse(r);
console.log(r);
}
В r получаем такой объект:
{ created_at: '2022-12-04T06:34:47+0000', id: 'bit.ly/3umWEM9', link: 'https://bit.ly/3umWEM9', custom_bitlinks: [], long_url: 'https://docs.', archived: false, tags: [], deeplinks: [], references: { group: 'https://api-ssl.bitly.com/v4/groups/Bmbui906n47' }}
Чтобы достать короткую ссылку, достаточно обратиться к этому объекту как r['link'].
Хорошо, ребят, вы мне показали, а что с этим делать дальше?
Например, пишем такой скрипт — кликаем в таблице на ячейку с ссылкой, запускаем скрипт, а он сокращает ссылку и вставляет в соседнюю ячейку результат. Таблица с примером / код в pastebin.
Либо, как мы сделали недавно для нашего клиента - обращаемся к ответам формы, в ответах - отдельные части длинной ссылки, внутри скрипта собираем ссылку, далее сокращаем её и все это вставляем в Таблицу. Кладём скрипт на событие "приход нового ответа формы".=arrayformula({"сумма" ; if(A:A="";; B:B + C:C)})
Такая формула распространится на все добавленные строки автоматически.
2) Оставьте в покое лист, на который приходят ответы на форму, ничего на нем не делайте вообще и обрабатывайте ответы на другом листе: там вы сможете и форматирование задать и протянуть нужные вам формулы.
Уютный чатик
Целая библиотека постов про Таблицы=MAP(A1:A6; D1:D6; G1:G6; LAMBDA(a; sumStart; sumEnd;if(a="";;sum(sumStart:sumEnd))))
Работает так: в map передаем три массива: столбец проверки, столбец начала суммирования и окончания суммирования.
Далее проверяем столбец проверки, если он не заполнен, то не возвращаем ничего if(a="";;, а если заполнен, то собираем с использованием двоеточия диапазон суммирования: столбец начала:столбец окончания sumStart:sumEnd и считаем его сумму.
С помощью фокуса с двоеточием мы не указываем диапазон суммирования целиком (это невозможно в функции map, есть же еще диапазон проверки) и нам достаточно указать только начало диапазона начало и окончание.
Про силу двоеточия писали здесь.=BYROW(C2:E9; LAMBDA(lr; IF(ISBLANK(INDEX(A1:A9; ROW(lr);));;SUM(lr))))
Объясняем логику:
1) передаем в BYROW диапазон, который будем суммировать;
2) мы не можем в LAMBDA написать функцию вроде IF(A1:A9<>""; SUM(lr);) из-за особенности функции, но за то мы можем получать номера строк переданного массива C2:E9 и передавать их в INDEX(A1:A9; ROW(lr)), чтобы получить построчно A1, A2, A3 и далее проверить эти ячейки на наличие значения;
3) Если ячейки A1, A2, A3 пустые не выводим ничего, если заполнены - выводим сумму по строке SUM(lr);
💥 Если найдете другой вариант решения - напишите его в комментарии.=BYROW(A1:F10;LAMBDA(ROW;if(INDEX(ROW;1)<>"";SUM(OFFSET(ROW;0;3;1;3));)))
Что мы в ней делаем:
— В функцию BYROW передаем весь диапазон
— В функции LAMBDA обращаемся к каждой строке диапазона как к ROW
— В привычной функции IF / ЕСЛИ обращаемся к первому элементу строки с помощью INDEX, проверяя есть ли значение
— Если IF / ЕСЛИ возвращает истину, то с помощью функции OFFSET / СМЕЩ отступаем от первой ячейки строки три столбца и суммируем этот отрезок
— Если IF / ЕСЛИ возвращает ложь, то не возвращаем ничего
💥 Домашнее задание: попробуйте написать формулу массива для столбца B с использованием новых функций, формула должна суммировать столбцы D, E, F для непустого столбца A. Отправьте свой вариант в комментарии.
Про новые функции:
Накопительный итог построчно
Подсчёт значений построчно
JOIN построчно=РАЗНДАТ(дата_начала; дата_окончания; единица измерения)Первые два аргумента — даты начала и окончания периода. Они могут быть указаны прямо в формуле в кавычках либо в виде ссылок на ячейки с датами, а также быть заданными функцией СЕГОДНЯ / TODAY. Единица измерения задается в кавычках. Есть следующие возможные варианты: "d" — число дней (такой параметр не имеет особого смысла, так как для этой задачи подойдет и функция ДНИ / DAYS, и просто вычитание); "m" — число полных месяцев в периоде; "y" — число полных лет в периоде; "md" — разница в днях без учета месяца и года (например, между 01.01.2021 и 15.06.2022 — 14 дней); "ym" — разница в месяцах без учета дня и года (например, между 01.01.2021 и 15.06.2022 — 5 месяцев); "yd" — разница в днях без учета года (например, между 01.01.2021 и 15.06.2022 —165 дней).
=IF(вы_любите_наш_канал ; поддержите_нас ; )
Друзья, мы с 2017 года помогаем вам с таблицами и скриптами.
Если хотите поддержать нас в ответ - будем очень признательны. Мы тут прикрутили кнопку для донатов к нашему каналу - будем рады, если вы опробуете эту штукенцию в деле!