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Автоматическое создание уникальных идентификаторов в Google Таблицах
#JS
#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 и остаток от деления — не одно и то же. Действительно забавно то, что некоторые читатели при этих словах выпрыгивают со своих кресел и орут: «А ведь именно это я всегда пытался сказать вам и всем остальным!»
Читать...
В любом случае: на прошлой неделе я узнал что-то странное и хочу поделиться: оказывается, mod и остаток от деления — не одно и то же. Действительно забавно то, что некоторые читатели при этих словах выпрыгивают со своих кресел и орут: «А ведь именно это я всегда пытался сказать вам и всем остальным!»
Читать...
Хабр
Mod и остаток — не одно и то же
Приготовьтесь, вас ждёт крайне педантичная статья, которая вполне может спасти вас на собеседовании или сэкономить несколько часов при вылавливании бага в прод...
Выводим список День + Название Дня недели
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 #dateForwarded from volond
=query(A2:A,"select A where " & textjoin(" and ",true,ARRAYFORMULA(" A contains '" & QUERY({B2:C},"select Col2 where Col1=True") &"'")))Forwarded from Ботоводство на Google Apps Script и не только...
Аудит Google Drive
Сценарий ListFilesFolders: это скрипт Google Apps, в котором перечислены все файлы и / или папки в
* Папка Google Диска, а затем записывает список в электронную таблицу партиями. В скрипте используется
* механизм кэширования, позволяющий восстанавливать вывод после возможного сбоя; однако это не будет продолжаться
* чтобы восстановить прерванный скрипт и продолжить поиск.
Сценарий ListFilesFolders: это скрипт Google Apps, в котором перечислены все файлы и / или папки в
* Папка Google Диска, а затем записывает список в электронную таблицу партиями. В скрипте используется
* механизм кэширования, позволяющий восстанавливать вывод после возможного сбоя; однако это не будет продолжаться
* чтобы восстановить прерванный скрипт и продолжить поиск.
Gist
[Google Apps Script] List all files & folders in a Google Drive folder, & write into a speadsheet
[Google Apps Script] List all files & folders in a Google Drive folder, & write into a speadsheet - appsScript_ListFilesFolders_ver.2.js
PropertyServices
Упрощает использование PropertyServices сценариев Google Apps. Может обрабатывать объекты и сохранять значения даты.
Пример
Упрощает использование 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 objectGitHub
modularLibrariesV8/Properties.js at master · classroomtechtools/modularLibrariesV8
Collection of libraries for Google AppsScripts with V8 engine - modularLibrariesV8/Properties.js at master · classroomtechtools/modularLibrariesV8
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
[ALT] + click,
чтобы вставить
#newIDE
This media is not supported in your browser
VIEW IN TELEGRAM
Скопируйте строку ниже или выше
с помощью
[ALT] + [SHIFT] + [UP] или [ALT] + [SHIFT] + [DOWN]
#newIDE
с помощью
[ALT] + [SHIFT] + [UP] или [ALT] + [SHIFT] + [DOWN]
#newIDE
Как отфильтровать массив объектов по атрибутам?
var obj = {
'homes': [{
"home_id": "1",
"price": "925",
"sqft": "1100",
"num_of_beds": "2",
"num_of_baths": "2.0",
}, {
"home_id": "2",
"price": "1425",
"sqft": "1900",
"num_of_beds": "4",
"num_of_baths": "2.5",
},
// ... (more homes) ...
]
};
// (Note that because `price` and such are given as strings in your object,
// the below relies on the fact that <= and >= with a string and number
// will coerce the string to a number before comparing.)
var howToFilterObjectArrayBasedOnAttributes=()=>{
var newArray = obj.homes.filter(function (el) {
return el.price <= 1000 &&
el.sqft >= 500 &&
el.num_of_beds >= 2 &&
el.num_of_baths >= 1.5; // Changed this so a home would match
});
console.log(newArray);
}
#JS #array #object #filter