Выводим ссылки из гиперссылок

15 октября 2023

Пример:

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

Для этого нам понадобится Google Sheets сама таблица с данными и инструмент Apps Script

В Apps Script создаём проект допустим с названием leaveOnlyLinks и вставим этот код:

myFunction() {
  const sheetName = "Лист1"// Укажите название вашего листа.
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName)// Получаем активную таблицу и выбираем лист с указанным названием
  const range = sheet.getRange("A2:A" + sheet.getLastRow())// Получаем диапазон ячеек в первом столбце, начиная со второй строки и до последней заполненной строки
  const urls = range.getRichTextValues().map(([a]) => // Получаем значения ячеек в формате RichText и применяем функцию map для обработки каждого значения
    [a.getRuns().reduce((arr) => { // Получаем все ссылки внутри значения ячейки и объединяем их в одну строку, разделенную запятыми
      const url = r.getLinkUrl();
      if (url) {
        ar.push(url);
      }
      return ar;
    }[]).join(",") || null] // Если значение ячейки не содержит ссылок, то записываем null
  );
  const destinationRange = sheet.getRange("B2:B" + (1 + urls.length))// Указываем куда выводить
  destinationRange.setValues(urls)// Записываем значения
}