Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Поиск определенных слов в ячейке (Google Таблицы), ищем определенные слова в ячейке и пишем ИСТИНА или ЛОЖЬ
 
Задача:
есть ячейка КОММЕНТАРИИ.
в этой ячейке могут находится разные слова, в том числе и знаки препинания.

Задача вычленить из этой ячейки определенные слова, и в строке с формулой написать ИСТИНА или ЛОЖЬ

Рабочий вариант для этих целей не нашел.

Пока только сообразил вот так:
Код
=ИЛИ(E8="яблоко";E8="ябл")
Но, если оставляем такой вариант, то при добавлении в ячейку с комментариями хотя бы одну лишнюю  букву - оператор ИЛИ пишет ЛОЖЬ

Может, кто подскажет вариант?
Зависимый выпадающий список в ГуглТаблицах, зависимый выпадающий список на AppScript
 
Понадобилось тут сделать зависимый выпадающий список. Не нашел ничего лучше, как видеоурок  :D написания скрипта на AppScript.

Задача скрипта:
- в 6-й колонке находится выпадающий список, и при выборе определенного значения из этого списка в 8й и 9й колонке выпадают зависимые от 6й колонки списки… Скрипт работает. С этим всё ок.

Однако есть проблема: скрипт работает НА ВСЕХ листах вместо определённого… Хотя в скрипте точно указал лист на котором он должен работать…

Может кто в курсе, что в этом скрипте не так? Почему он работает сразу на всех листах?
Код
function onEdit(){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName("ЗАЯВКИ");
let sheetDb = ss.getSheetByName("SYS_LIST_CATEGORY");

let ar = sheet.getActiveCell();
if(ar.getColumn()!==6){return}
let valToFind = ar.getValue();
ar.offset(0, 3).clearContent().clearDataValidations();
ar.offset(0, 2).clearContent().clearDataValidations();

let values = sheetDb.getRange(9,1,1,sheetDb.getLastColumn()).getValues();

let col = values[0].indexOf(valToFind)+1;
console.log(col);
let range = sheetDb.getRange(10, col, 3,1).getValues();
//для установки неопределенного диапазона
//let range = sheetDb.getRange(10, col, 3,1);
console.log(range);
let validation = SpreadsheetApp.newDataValidation().requireValueInList(range).build();
//для установки неопределенного диапазона
//let validation = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();

//sheet.getRange(ar.getRow(), 2).setDataValidation(validation);
ar.offset(0, 2).setDataValidation(validation);
ar.offset(0, 3).setDataValidation(validation);
}


PS
да, времени не было создавать ещё один GoogleSheets с примером, чтобы его можно было увидеть по ссылке.
Подсчет длительности времени в Таблицах Гугл (Google Sheets), делаем подсчёт длительности времени в формате ММ:СС.000 в Таблицах Гугл (Google Sheets)
 
Всем привет.
проблема с подсчётом времени...

есть таблица с ячейками "время-1" и "время-2" в формате ММ:СС.000 - то есть, минуты:секунды.долисекунды (три цифры после точки).

время-1                время-2                сумма
00:30.001              02:30.123                 ?
00:20.191              05:30.001                 ?
01:10.000              02:20.341                 ?


Задача подсчитать ячейку временем-1 + временем-2 и поставить результат в ячейку СУММА.

Проблема в том что формула =СУММ тут не работает, так как формат ММ:СС.000 почему-то считается за текст....

В интернете нашел только такое решение:
Код
=ArrayFormula(ТЕКСТ(СУММ(ЕСЛИОШИБКА(ВРЕМЗНАЧ(I6;K6)));"mm:ss.000"))

Но оно тоже не работает  :cry:
Может я что-то не так делаю?
Штамп даты в Таблицах Гугл (Google Sheets), автоматическая вставка даты в определенную ячейку при редактировании определенной ячейки
 
Всем привет.
...задача была в Гугл таблицах (Google Sheets) в автоматическом режиме вставлять сегодняшнюю дату(дату редактирования) в определённую ячейку при редактировании определенной ячейки.
В поисках сего наткнулся на такой код:
Код
function auto_set_date(){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName('ЗАЯВКИ');


let ar = sheet.getActiveRange();

let a_col = ar.getColumn();
// let a_row = ar.getRow();

if(a_col === 2 && ar.offset(0,6).getValue()===''){
ar.offset(0,6).setValue(new Date());  
}
}

Код работает....но абсолютно на всех листах... а надо только на одном.

В поисках решения проблемы наткнулся на такой код:
Код
if (sheet.getName()==="Нужный лист"){весь код} 
пояснение куда вставить этот кусок кода отсутствовало и я так понял, что надо вставить этот кусок кода строкой №1 и в скобках "весь код" вписать весь код начиная со строки "function auto_set_date(){".
То есть вот так:
Код
if (sheet.getName()==='ЗАЯВКИ'){
function auto_set_date(){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName('ЗАЯВКИ');


let ar = sheet.getActiveRange();

let a_col = ar.getColumn();
// let a_row = ar.getRow();

if(a_col === 2 && ar.offset(0,6).getValue()===''){
ar.offset(0,6).setValue(new Date());  
}
}
}

Ну я так и сделал... и при таком раскладе код полностью перестал работать.

Кто знает как решить эту проблему - как заставить этот код работать только на определённом листе?
Изменено: Данил И - 28.01.2023 14:09:03
Таблица для соревнований по плаванию, Создание таблицы для соревнований по плаванию с умными алгоритмами.
 
и еще раз всем добрый вечер.
...может кто сможет помочь.

В Книге Эксель (во вложении) я тут на скорую руку, не будучи знатоком программирования в эксель, создал таблицу для соревнований по плаванию.
Забегая в перед скажу, это не то на что я рассчитывал, но хоть что-то...

Идея изначально была хорошая:
- в лист ЗАЯВКИ вбиваем данные заявленных участников, категорию, ФИО тренера, стиль заплыва и примерное время лучшего заплыва на тренировках.
- в листе ЗАПЛЫВЫ - формируем заплывы: выбираем дорожку и ИМЯ участника из выпадающего списка, а параметры: категория, ФИО тренера и стиль - должны подтягиваться автоматически из листа ЗАЯВКИ. После заплыва в строку ВРЕМЯ заносится время.
- в листе НАГРАЖДЕНИЕ - формируем списки награждения: Выбираем из выпадающего списка только имя участника, а все остальные данные в том числе и время заплыва подтягиваются из листа ЗАПЛЫВЫ. Также при этом автоматом формируется место участника в зависимости от времени, которое подтягивается из листа ЗАПЛЫВЫ.

Это конечно всё работает, но я также столкнулся с некоторыми проблемами (или ограничениями моего Экселя), которые пришлось решать очень "по колхозному".

В кратце о проблемах моего колхоза:
- в Листе НАГРАЖДЕНИЕ пришлось извращаться с функцией РАНГ:
=ЕСЛИОШИБКА(РАНГ(H60;H$60:H$68;1)+СЧЁТЕСЛИ(H$60:H60;H60)-1;"-")
так как сортировка занятых мест шла не по порядку и в дополнение, функция РАНГ не решает проблему: что делать если несколько участников плывут одинаковое время (до долей секунды) и на награждении им надо присвоить одинаковые места.

- во вторых хотелось бы какой-то автоматизации: чтобы была чудо-кнопка по нажатию которой, в листе ЗАПЛЫВЫ автоматически формировалась таблица заплывов с дорожками. Такое вообще Возможно? Вроде бы про эту чудо-кнопку писали вот тут на форуме, но у меня этот пример не работает даже с включёнными макросами: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=98989&am...

- как сделать так, чтобы при добавлении участника в общий список в листе ЗАВКИ, он автоматически добавлялся во всех выпадающих списках, где выбираем участника... пока это реализую в ручном порядке :( заходя во вкладку данные>>проверка данных>> и в графе Источник рисуем новый диапазон из таблицы с участниками :(

Может кто-то из знатоков глянет файл?
Хочется привести в порядок мой колхоз...
Изменено: Данил И - 11.01.2023 01:00:39
альтернатива РАНГ ?, альтернатива функции РАНГ
 
Добрый вечер.
...уже не помню какую неделю мучаюсь(бьюсь головой об стену) с функцией РАНГ.
Гугл и Яндекс оказались бесполезны в поисках конкретно моей проблемы.
Может кто знает, есть ли альтернатива функции РАНГ, чтобы избавится от функции РАНГ как от ночного кошмара раз и навсегда.

Задача: ранжировать время заплыва по маске времени "00:00,00"
Ну как бы РАНГ с этим справляется, однако для меня есть два больших минуса этой функции:

- если в списке времени есть время 00:00,00 (нулевое время), то РАНГ присваивает 1-е место пловцу проплывшему за 00:00,00... это дико смешно. И как отучить РАНГ от этой привычки - не понятно.

- и второй главный минус (не знаю, может это у меня глючит эксель):

ВРЕМЯ       МЕСТО
00:34,06          4
-                       -
00:23,01          1
-                       -
-                       -
00:28,07          2
00:43,07          5
01:04,01          6
00:28,07          2

после 2-го места идёт 4-е. Как такое может быть?
Да, в этом примере два вторых места.
Логично предположить, что после второго места(хоть сколько бы их ни было) идёт третье - а тут - четвертое. Как так?
И вместо нулевого времени пришлось выставить прочерк.

Формула РАНГ вот такая: =ЕСЛИОШИБКА(РАНГ(K6;K6:K14;1);"-")
(пришлось извращаться добавив ЕСЛИОШИБКА, чтобы РАНГ смог работать хотяб с прочерком вместо нулевого времени)

Можно с этим что-то сделать и заодно отучить РАНГ присваивать 1-е место за время 00:00,00 ?
Изменено: Данил И - 08.01.2023 19:34:07
Страницы: 1
Наверх