#GoogleТаблицы — это аналог #Excel с веб-интерфейсом и возможностями для удобной совместной работы. Они похожи, и все же в Таблицах есть свои особенности, функции, плюсы и минусы. Работать в Google Таблицах просто и мы покажем как.
wildberries.ru/catalog/86123932/detail.aspx?targetUrl=XS
и превращаем её в
img1.wbstatic.net/big/new/86120000/86123932-1.jpg (-2.jpg, -3.jpg, ...)
Разберём по пунктам:
1) Достаём из ссылки на карточку – артикул товара, отбросив последние четыре цифры:
wildberries.ru/catalog/86123932/detail.aspx?targetUrl=XS
=REGEXEXTRACT($A1;"(\d+)\d{4}")
//8612
2) Добавим слева "https://img1.wbstatic.net/big/new/" и добавим справа "0000/", а также артикул полностью, а также {"-1.jpg" \ "-2.jpg" \ "-3.jpg"}, чтобы получить три ссылки.
Итоговая формула:
=ARRAYFORMULA(
"https://img1.wbstatic.net/big/new/"
& REGEXEXTRACT($A1;"(\d+)\d{4}") & "0000/"
& REGEXEXTRACT($A1;"\d+")
& {"-1.jpg" \ "-2.jpg" \ "-3.jpg"})
Формула возращает:
img1.wbstatic.net/big/new…32-1.jpg
img1.wbstatic.net/big/new…32-2.jpg
img1.wbstatic.net/big/new…32-3.jpg
Таблица с примером
📌 А еще мы сделали своё дополнение для продавцов WB
🚜 Делитесь своими трюками в WB в комментариях :)
Наш чат, где могут помочь с Таблицами: @google_spreadsheets_chat=ROW(A1:A6) в ячейку, то увидите значение только для первой ячейки диапазона, A1 (смотрите ячейку C1 на скриншоте).
Чтобы увидеть всё – нужна формула массива:
=ARRAYFORMULA(row(A1:A6))
Оглавление нашего канала: тыц
Наш чат: тыц-тыцA1:B6 (чтобы последняя строка данных – стала первой, предпоследняя – второй, ...) мы можем воспользоваться формулой
=SORT(A1:B6;ROW(A1:A6);FALSE)
Разберём её по частям:
=SORT(A1:B6;ROW(A1:A6);FALSE) – диапазон данных для сортировки.
=SORT(A1:B6;ROW(A1:A6);FALSE) – хитрость, мы создаём виртуальный столбец с номерами строк исходного диапазона данных {1;2;3;4;5;6}. Виртуальность столбца означает, что он никуда не выводится и используется только внутри формулы.
=SORT(A1:B6;ROW(A1:A6);FALSE) – сортировка по возрастанию FALSE/ЛОЖЬ, то есть, сортировка по виртуальному столбцу пойдет по по убыванию.REGEXREPLACE заменим все не цифры и не запятые на пустоту:
=ARRAYFORMULA(REGEXREPLACE(A2:A;"[^\d,]";""))
2) Добавляем SPLIT и разделим строки по "," (для ячеек, где перечислены несколько телефонов через запятую):
=ARRAYFORMULA(SPLIT(REGEXREPLACE(A2:A;"[^\d,]";"");","))
3) Поместим весь результат в один столбец, добавив FLATTEN
=ARRAYFORMULA(FLATTEN(SPLIT(REGEXREPLACE(A2:A15;"[^\d,]";"");",")))
4) И последний штрих– отфильтруем от пустых ячеек, добавив QUERY с фильтрацией по первому столбцу
Итог:
=QUERY(ARRAYFORMULA(flatten(SPLIT(REGEXREPLACE(A2:A15;"[^\d,]";"");",")));"where Col1 is not null";0)function pasteNames() {
const ss = SpreadsheetApp.getActive();
const sheets = ss.getSheets();
sheets.forEach(sheet => {
const sheetName = sheet.getSheetName();
sheet.getRange("A1").setValue(sheetName);
})
};
Чтобы скрипт отрабатывал при каждом открытии Таблицы пользователем – добавьте его в функцию onOpen:
function onOpen(){
pasteNames();
SpreadsheetApp.getUi()
.createMenu("тут может быть меню со скриптами")
.addItem(`скрипт`, '...')
.addToUi();
};
Если нам нужно игнорировать некоторые листы и ничего не вставлять в них:
function pasteNames() {
const ss = SpreadsheetApp.getActive();
const sheets = ss.getSheets();
const ignoreNames = ['Sheet1', 'Sheet2']
sheets.forEach(sheet => {
const sheetName = sheet.getSheetName();
if (!ignoreNames.includes(sheetName)) {
sheet.getRange("A1").setValue(sheetName);
}
})
};
🔥 оглавление нашего канала: перейтиPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim Pivo As PivotTable
For Each Pivo In Sh.PivotTables
Pivo.PivotCache.Refresh
Next Pivo
End Subcountifs в массиве, в аргументах перечисляем все столбцы данных и обязательно, добавим магическое условие: row(D2:D20);"<=" & row(D2:D20). Получится что-то такое:
=ARRAYFORMULA(if(A2:A20<>"";COUNTIFs(A2:A20;A2:A20;B2:B20;B2:B20;C2:C20;C2:C20;D2:D20;D2:D20;row(D2:D20);"<=" & row(D2:D20));))
Получаем номера вхождения строк:
1 - первое вхождение,
2-3-4-... последующие (то есть, дубликаты)
Применяем автофильтр и оставляем строки, у которых номер вхождения не единица, выделяем эти строки и смело удаляем.
PS в простых случаях можно использовать функцию UNIQUE, но если внутри ваших данных спрятаны формулы и вы хотите удалить именно строки с дубликатами – используйте метод из поста.
— Таблица с примером: здесь
— Как выделить дубликаты с помощью УФ: тут
— Про магические условия вида row(F2:F20),"<=" & row(F2:F20) и как с помощью них сделать автоматическую нумерацию списков: вот здесь