function saveMessage(message){
// ваша логика парсинга сообщения. через регулярки или split()
};
function doPost(e){
try{
let data = JSON.parse(e?.postData?.contents || "{}");
let messageText = String(data?.message?.text || "");
if (messageText) {
saveMessage(messageText);
};
}catch({message,stack}){
// Запись логов ошибки во внешнее хранилище
};
=arrayformula(let(
author; "@ProgrammerForever";
header; "Продолжительность";
ВремяБуквами; $A$2:$A;
dd; ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+(?:дней|день|дня)");0);
hh; ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+час");0);
mm; ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+мин");0);
ss; ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+сек");0);
time; dd + hh/24 + mm/(24*60) + ss/(24*60*60);
vstack( header; ЕСЛИ(ВремяБуквами="";;time))
))
Sub ProcessFilesInDirectory()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
' Путь к директории
folderPath = "C:\temp\"
' Получаем первый файл с расширением .xlsx в директории
fileName = Dir(folderPath & "*.xlsx")
' Перебираем все файлы в директории
Do While fileName <> ""
' Открываем файл
Set wb = Workbooks.Open(folderPath & fileName)
' Вызываем функцию macros3
Call macros3()
' Сохраняем и закрываем файл
wb.Close SaveChanges:=True
' Получаем следующий файл
fileName = Dir
Loop
End Sub
=СУММ(ArrayFormula({B2:B11*ЕСЛИОШИБКА(ВПР(A2:A11;{E2:E11\F2:F11};2;0))}))