Size: a a a

Чат | Google Таблицы и скрипты

2018 October 27

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Привет, интервальный просмотр (последний аргумент) опущен, следовательно равен 1
Это часть задачи о сокращённых инниалах
Например Борис должно вывести Бор.
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Богдан должно вывести Богд.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
ID:541134294
Богдан должно вывести Богд.
а Иван?
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Яна Иван Я. И.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
ID:541134294
Яна Иван Я. И.
ну если логика такая, то проще создать таблицу со всеми именами и их сокращения и брать оттуда
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Первая буква Гласная или нет
Тогда если Да
Выводимой все начиная с первой до первой согласной за которой следует гласная
Если Нет
Тот же принцип только начинаем со второй буквы искать согласную за которой гласная
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Скриптами или тегами  наверное легче но главный вопрос Гласная или Согласная
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Eugeny Namokonov
ну если логика такая, то проще создать таблицу со всеми именами и их сокращения и брать оттуда
Проще конечно Но чем не задача для мозга
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
ID:541134294
Первая буква Гласная или нет
Тогда если Да
Выводимой все начиная с первой до первой согласной за которой следует гласная
Если Нет
Тот же принцип только начинаем со второй буквы искать согласную за которой гласная
Тогда достаточно просто
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
дальше сканируем слово слева-направо последовательными IF
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
о, не, можно проще
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
сейчас мы получили карту гласных-согласных, ее можно привести вот к таком виду
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
и сопоставляем с Таблице сокращений, в которой укажем для каждой последовательности согласных и гласных число символов, которые мы оставляем в исходном слове
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
ID:541134294
Проще конечно Но чем не задача для мозга
Понятна идея?

--

1) кодируем структуру слова (гласные-согласные) в виде 0 и 1 для каждой буквы
=ARRAYFORMULA(join("",if(REGEXMATCH(MID(H10,COLUMN(A2:D2),1),"О|о|А|а|И|и|Э|э|Е|е|У|у|Я|я|І|і"),1,0)))

2) дальше сопоставляем полученный код с заранее подготовленной таблицей сокращений, где коду будет соответствовать количество символов, которые будем оставлять в исходном слове

3) оставляем это число символов с помощью LEFT
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
Или так найти положение первой гласной перед которой идёт согласная и вывести все из строки до этого положения
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
"=REGEXMATCH(J1;""[А|а|У|у|Е|е|О|о|Ы|ы|Э|э|Я|я|И|и|Ю|ю]"")"
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
"=mid($K$1;1;QUERY({ARRAYFORMULA({arrayformula(REGEXMATCH({MID($K$1;row(INDIRECT(""a1:a""&len($K$1)));1)};""[А|а|У|у|Е|е|О|о|Ы|ы|Э|э|Я|я|И|и|Ю|ю]""))*{false();arrayformula( not(REGEXMATCH({MID($K$1;row(INDIRECT(""a1:a""&len($K$1)-1));1)};""[А|а|У|у|Е|е|О|о|Ы|ы|Э|э|Я|я|И|и|Ю|ю]"")))}})\arrayformula({row(INDIRECT(""a1:a""&len($K$1)))})};""select Col2 where Col1=1 limit 1 "")-1)&""."""
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
В $К$1 наше имя
источник