Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] [Работа с текстом] - как убрать из списка со ссылками лишнее? (http://forum.oszone.net/showthread.php?t=291403)

flower 21-11-2014 20:27 2433415

[Работа с текстом] - как убрать из списка со ссылками лишнее?
 
День добрый.
Имеется файл экселевский (бланк), в нем список ссылок на товары следующего вида:

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

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

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

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

Iska 21-11-2014 20:47 2433432

Цитата:

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

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

Vadikan 22-11-2014 12:17 2433642

Да можно и без макроса. Просто дважды разбить текст по столбцам - первый раз с разделителем ?, а второй - с &. Потом собрать нужную формулу, объединяя ячейки с помощью &.


Drongo 23-11-2014 13:20 2434080

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

Но ради спортивности, доделал свой вариант, хотя по трудозатратам проигрывает, да и если смотреть объективно, формат ссылки поменяется, скажем id или shop и вся конструкция улетает в трубу. По разделителям бить надёжднее. :yes:
Код:

=СЦЕПИТЬ(ЛЕВСИМВ(A1;ПОИСК("~?";A1;1)); ПСТР(A1; ПОИСК("id"; A1; 1); ПОИСК("&shop";A1;1) - ПОИСК("id"; A1; 1)))


Время: 03:02.

Время: 03:02.
© OSzone.net 2001-