Войти

Показать полную графическую версию : [решено] [Работа с текстом] - как убрать из списка со ссылками лишнее?


flower
21-11-2014, 20:27
День добрый.
Имеется файл экселевский (бланк), в нем список ссылок на товары следующего вида:

httр://www.vvv.ww/goods?adv=23213123&id=000000001&shop=1223123123

для удобства я их преобразовываю примерно в такой вид:

httр://www.vvv.ww/goods?id=000000001

Подскажите софтины, которые могут по маске произвести преобразование, убрав лишнее из ссылок?

Iska
21-11-2014, 20:47
Подскажите софтины, которые могут по маске произвести преобразование, убрав лишнее из ссылок? »
«Софтина», как Вы выразились, именуется VBA и встроена в Microsoft Excel. Пишете простой макрос, в котором пользуете регулярное выражение для поиска и замены. Детали реализации будут зависеть от конкретного содержания рабочей книги, и без выкладывания её образца бессмысленны.

Vadikan
22-11-2014, 12:17
Да можно и без макроса. Просто дважды разбить текст по столбцам (https://support.office.com/ru-ru/article/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0-%D0%BF%D0%BE-%D1%80%D0%B0%D0%B7%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D0%BC-%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D0%B0%D0%BC-30b14928-5550-41f5-97ca-7a3e9c363ed7?ui=ru-RU&rs=ru-RU&ad=RU) - первый раз с разделителем ?, а второй - с &. Потом собрать нужную формулу, объединяя ячейки с помощью &.

http://i.imgur.com/IM5Ao8r.png

Drongo
23-11-2014, 13:20
Vadikan, Вад, класс. Только начал читать тему, думал сейчас напишу побыстренькому функцию, однако сам запутался во вложеных уровнях и функциях. Долистал тему до конца, увидел твоё решение. Элегантное и не обременяющее пользователя, тем более для разовой задачи. Тем более всё делает мастер, да ещё и текст после обработки остаётся весь, т.е. можно работать с какой угодно его частью.

Но ради спортивности, доделал свой вариант, хотя по трудозатратам проигрывает, да и если смотреть объективно, формат ссылки поменяется, скажем id или shop и вся конструкция улетает в трубу. По разделителям бить надёжднее. :yes:
=СЦЕПИТЬ(ЛЕВСИМВ(A1;ПОИСК("~?";A1;1)); ПСТР(A1; ПОИСК("id"; A1; 1); ПОИСК("&shop";A1;1) - ПОИСК("id"; A1; 1)))

http://tnkscr.net/VWjlIO.jpg




© OSzone.net 2001-2012