Готовые примеры формул

На этой странице собраны разные примеры формул, которые можно просто скопировать и начать использовать, без необходимости в них разбираться.

Обрезание текста по длине

let({
  text: 'Это текст, который обрезается по длине',
  length: 20,
}, if(
  length(text) > length,
  substr(text, 0, length) & '…',
	text
))

В формулу нужно подставить переменную с текстом, а так же заменить 20 на количество символов, после которого строка будет обрезаться.

Форматирование дат

let({
  format: 'DAY.MONTH.YEAR HOUR:MINUTE',
  date: now(),
}, let({ dateStr: toString(toDate(date)) }, reduce([
  ['YEAR', substr(dateStr, 0, 4)],
  ['MONTH', substr(dateStr, 5, 2)],
  ['DAY', substr(dateStr, 8, 2)],
  ['HOUR', substr(dateStr, 11, 2)],
  ['MINUTE', substr(dateStr, 14, 2)],
  ['SECOND', substr(dateStr, 17, 2)],
], replace(value, item[0], item[1]), format)))

Если формулу не менять, то она будет выводить отформатированную текущую дату и время. Можно заменить now() переменной, дата в которой представлена в виде числа или строки.

Склонение существительного после числа

let({
	count: 22,
  words: ['день', 'дня', 'дней'],
}, count & ' ' & words[if(
  count % 100 > 4 and count % 100 < 20,
  2, [2, 0, 1, 1, 1, 2][if(count % 10 > 5, 5, count % 10)]
)])

В формуле нужно заменить 22 на ваше число, и заменить слова.

Размер файла из байт в килобайты и т.д.

let({
  bytes: 332334,
  units: ['B', 'KB', 'MB', 'GB', 'TB', 'PB'],
  precision: 2,
  zero: 'Empty',
}, if(bytes == 0, zero, let({
  e: min([floor(log(bytes, 1024)), 5])
}, round(bytes / pow(1024, e), precision) & units[e])))

В формуле bytes - это размер файла в байтах, units - используемые обозначения, а zero это текст, используемый при 0 байт.

Округление до тысяч, миллионов и т.д.

let({
  bytes: 435478876,
  units: [' тыс.', ' млн.', ' млрд.', ' трлн.'],
  precision: 0,
  zero: '0',
}, if(bytes == 0, zero, let({
  e: min([floor(log(bytes, 1000)), 4])
}, round(bytes / pow(1000, e), precision) & if (e > 0, units[e - 1], ''))))

Форматирование чисел

let({
  number: 1233445,
  delimiter: ' ',
}, let({ str: toString(number) }, trimStart(join(map(
  range(0, length(str)),
  if((length(str) - item) % 3 == 0, delimiter, '') & substr(str, item, 1)
)))))

Перемешивание списка в случайном порядке

let({
  array: [1, 2, 3, 4, 5]
}, map(
  sort(map(array, [item, random()]), item[1]),
  item[0]
))
Работает на Creatium