January 15, 2021

Функция DETECTLANGUAGE в Google Таблицах: определяем язык текста в ячейке. Кейс: автоматом формируем ссылку на нужный интернет-магазин

В Google Таблицах есть не только GOOGLETRANSLATE, переводящая текст (из ячейки или прямо указанный в аргументе), но и функция DETECTLANGUAGE, которая определяет язык текста. И она едва ли не полезнее: можно соединить ее с логическими функциями и в зависимости от языка возвращать то или иное значение.

Покажу на примере из моей работы в издательстве: у нас была и есть таблица со списком книг, где тысячи и тысячи наименований, и мне хотелось автоматически получать ссылки либо на российский, либо на американский интернет-магазин — в зависимости от названия книги (на русском или английском).

Начнем с того, что получим ссылки на нужные нам магазины. Заходим на Амазон и Озон, вбиваем любое слово в поиск и копируем строку из браузера, чтобы понимать, как выглядит ссылка на поиск в этих магазинах - в нее мы будем подставлять название книги:

https://www.ozon.ru/search/?text=книга
https://www.amazon.com/s?k=книга

Вместо слова "книга" будем подставлять название книги из нашей таблицы.

Но сначала, прежде чем подставить, надо понимать, в какую ссылку. А для этого и нужна DETECTLANGUAGE — она покажет, на каком языке название. У нее единственный аргумент — ссылка на ячейку с текстом (ну или текст в кавычках)

=DETECTLANGUAGE(текст или ссылка на ячейку)

Она будет выдавать двухбуквенные коды языка:

А далее мы проверяем, какой код указан, с помощью функции ЕСЛИ / IF, и в зависимости от кода формируем ссылку либо на один магазин, либо на другой.

=ЕСЛИ(B2="en";ссылка на Амазон;ссылка на Озон)

Ссылку будем формировать с помощью функции ГИПЕРССЫЛКА / HYPERLINK: она превратит текст, слепленный из ссылки на магазин и из названия книги в собственно ссылку. Ее второй аргумент - текст ссылки, то, как ссылка выглядит в ячейке (в нашем примере "Книга на Озоне" или "Книга на Амазоне", чтобы не отображать в ячейке длинную ссылку).

ГИПЕРССЫЛКА("https://www.amazon.com/s?k="&A2;"Книга на Amazon")
ГИПЕРССЫЛКА("https://www.ozon.ru/search/?text="&A2;"Книга на Озоне")

Собираем все в одну формулу с ЕСЛИ:

=ЕСЛИ(B2="en";
ГИПЕРССЫЛКА("https://www.amazon.com/s?k="&A2;"Книга на Amazon");
ГИПЕРССЫЛКА("https://www.ozon.ru/search/?text="&A2;"Книга на Озоне"))

Обратите внимание — мы проверяем только на английский язык и в остальных случаях отправляем на Озон, так как в таблице у нас нет ничего другого. В более сложных случаях понадобится ЕСЛИМН / IFS или вложенные функции ЕСЛИ.

Промежуточный столбец с кодом языка, конечно, не обязателен и показан для примера. DETECTLANGUAGE можно зашить и внутрь ЕСЛИ и сделать все без промежуточных расчетов.

Ну вот. Теперь при наведении курсора у нас есть ссылка на нужный магазин, и при переходе мы попадаем в него уже с вбитым в поиск названием книги из нашей таблицы.

Файл с примером.