Volond Apps
221 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
.
Вытягиваем инфу из Листов быстро
или заставляем INDIRECT работать с массивом
🦾
Описание
Code
PasteBin
Table
table
OFFSET как побороть ошибку циклической ссылки
=sum(OFFSET(C3;;;MATCH(1,Е+308;OFFSET(C3;;;ROWS(C:C)-ROW(C3)))))
#formula
Используйте Google Таблицы в качестве инструмента отчетности вашего приложения
Из этой лаборатории вы узнаете, как использовать Google Таблицы в качестве настраиваемого инструмента отчетности для ваших пользователей. Вы измените образец приложения для отслеживания заказов для экспорта в электронную таблицу и создания визуализаций с помощью API Google Sheets. Пример приложения построен с использованием Node.js и веб-инфраструктуры Express, но те же основные принципы применимы к любой архитектуре.
Пакетный менеджер
Видео
Описание
Forwarded from volond
=Arrayformula(split(textjoin("";true;transpose({SEQUENCE(1;$A$1;2);split(rept("_"&$A$2&"#,";$A$1);",")}));"#"))
Forwarded from volond
Возможно кому-то понадобиться список периодов дат на каждый год

=arrayformula(transpose(TEXT(DATEVALUE("1."&SEQUENCE(1;12;1)&"."&year(today()));"dd.mm.yyyy"))&"-"&{TEXT(transpose(DATEVALUE("1."&SEQUENCE(1;11;2)&"."&year(today()))-1);"dd.mm.yyyy");TEXT(DATE(year(today());12;31);"dd.mm.yyyy")})
#formula
И период дат для текущего месяца
=arrayformula(TEXT(DATEVALUE(SEQUENCE(1;index(transpose({arrayformula(day(transpose(DATEVALUE("1."&SEQUENCE(1;11;2)&"."&year(today()))-1)));day(DATE(year(today());12;31))});1;MONTH(today()));1)&"."&MONTH(today())&"."&year(today()));"dd.mm.yyyy"))
#formula #date
Автоматическое создание уникальных идентификаторов в Google Таблицах
#JS
// UID UNIQUENESS
// ID_LENGTH = 3: 226,920 posible values
// ID_LENGTH = 4: 13,388,280 posible values
// ID_LENGTH = 5: 776,520,240 posible values
// ID_LENGTH = 6: 44,261,653,680 posible values


var ID_LENGTH = 5;

// Thanks to Tom Spencer for this function
// Tom's website/blog is at fiznool.com
function generateUID () {
var ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var rtn = '';
for (var i = 0; i < ID_LENGTH; i++) {
rtn += ALPHABET.charAt(Math.floor(Math.random() * ALPHABET.length));
}
return rtn;
}
Mod и остаток — не одно и то же
В
любом случае: на прошлой неделе я узнал что-то странное и хочу поделиться: оказывается, mod и остаток от деления — не одно и то же. Действительно забавно то, что некоторые читатели при этих словах выпрыгивают со своих кресел и орут: «А ведь именно это я всегда пытался сказать вам и всем остальным!»
Читать...
Получаем последнюю Дату Текущего месяца
#formula
=day(DATE(YEAR(now());MONTH(now());32)-1)
#JS #date
Date.prototype.daysInMonth = function() {
return 32 - new Date(this.getFullYear(), this.getMonth(), 32).getDate();
};
Выводим список День + Название Дня недели
const getDaysArray = (year, month) => {
year = year || new Date().getFullYear()
month = month || new Date().getMonth()+1
console.log(month)
const names = Object.freeze(
['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']);
const date = new Date(year, month - 1, 1);
const result = [];
while (date.getMonth() == month - 1) {
result.push(`${date.getDate()}-${names[date.getDay()]}`);

date.setDate(date.getDate() + 1);
}
return result;
}
//[ '1-fri','2-sat',....,'30-sat','31-sun' ]
#JS #date
Forwarded from volond
=query(A2:A,"select A where " & textjoin(" and ",true,ARRAYFORMULA(" A contains '" & QUERY({B2:C},"select Col2 where Col1=True") &"'")))
Аудит Google Drive
Сценарий
ListFilesFolders: это скрипт Google Apps, в котором перечислены все файлы и / или папки в
* Папка Google Диска, а затем записывает список в электронную таблицу партиями. В скрипте используется
* механизм кэширования, позволяющий восстанавливать вывод после возможного сбоя; однако это не будет продолжаться
* чтобы восстановить прерванный скрипт и продолжить поиск.
PropertyServices
Упрощает использование PropertyServices сценариев Google Apps. Может обрабатывать объекты и сохранять значения даты.

Пример

// initialize available stores, with sensible default values
const lib = Properties.scriptStore(); // or
const lib = Properties.userStore(); // or
const lib = Properites.documentStore();

// set keys to values of any kind, including nested objects with dates!
lib.set('key', 564);
lib.set('obj', {nested: [1, 2, new Date(), 400.2, {hi='hi'}]});

// retrieve values with get
const value = lib.get('obj')
value.nested[4].hi; // 'hi'

// retrieve keys with getKeys
const keys = lib.getKeys(); // array

// bulk update
lib.setProperties({
key: 0,
obj: {}
});

// remove keys
lib.remove('key'); // just the one
lib.removeAll(); // all of them

// get everything
// (possibly very slow: goes through each key and stores onto new object)
const props = lib.getAll(); // returns key value object
This media is not supported in your browser
VIEW IN TELEGRAM
Измените порядок файлов в проекте Apps Script #newIDE
This media is not supported in your browser
VIEW IN TELEGRAM
Мульти-курсор для одновременного редактирования нескольких строк
[ALT] + click,
чтобы вставить
#newIDE