[excel] помогите. замена текста после разделителя /

Тема в разделе "Регулярные выражения", создана пользователем BannedMi, 28 фев 2012.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. BannedMi

    BannedMi Создатель

    Регистр.:
    14 ноя 2009
    Сообщения:
    47
    Симпатии:
    84
    Добрый день сообщество. Прошу вашей помощи.

    Есть ексель файл. И в нём имеются списки папок.

    Y:\Corps\Buhgalt\Постановка на налоговый учет\old2
    Y:\Corps\Buhgalt\Buh_obmen\Yakusheva\
    Y:\Corps\Buhgalt\Постановка на налоговый учет\QueryForms\A4.xlt
    Y:\Corps\Buhgalt\Постановка на налоговый учет\SQL Регистрация постановки на налоговый учет.md0
    Y:\Corps\Buhgalt\Постановка на налоговый учет\Ярлык для Регистрация постановки на налоговый учет.lnk
    и так далее. Всего около 15к записей.
    Каким образом можно заменить все записи, чтобы выдавало, путь, только до 4х папок, по типу:
    Y:\Corps\Buhgalt\Постановка на налоговый учет\util\
    Y:\Corps\Buhgalt\Buh_obmen\_vti_pvt\
    Y:\Corps\Buhgalt\Buh_obmen\Yakusheva\
    и т.п.
     
  2. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    453
    Эксель разве поддерживает регулярки?
    В любом случае у меня работает такая:
    Код:
    ((?:[^\r^\n]*?\\){5})[^\r^\n]*
    Только она ничего не делает с путями, у которых меньше 4 папок (она их просто пропускает)
     
  3. BannedMi

    BannedMi Создатель

    Регистр.:
    14 ноя 2009
    Сообщения:
    47
    Симпатии:
    84
    Не совсем понятно, как это заставить работать. Через замену?
     
  4. Красавчег

    Красавчег Завсегдатай

    Регистр.:
    15 мар 2010
    Сообщения:
    902
    Симпатии:
    298
    В экселе регулярки не работают. Выбираете раздел "Данные", далее "Текст по столбцам", ставите знаком разделителя \ и разделив строки по столбцам, копируете себе в текстовой файл первые четыре столбца, удаляете через поиск/замену знаки табуляции. Все.
     
    BannedMi нравится это.
  5. BannedMi

    BannedMi Создатель

    Регистр.:
    14 ноя 2009
    Сообщения:
    47
    Симпатии:
    84
    Спасибо большое, самый действенный способ получился. С нотепадом намучался.
     
  6. baddavil

    baddavil Создатель

    Регистр.:
    14 мар 2012
    Сообщения:
    25
    Симпатии:
    1
    Можно сделать через формулы Excel
    Для восприятия может немного грамоздко, но зато сделать надо один раз ))
    текст в ячейке A1
    Код:
    =ЛЕВСИМВ(A1;НАЙТИ("\";A1;НАЙТИ("\";A1;НАЙТИ("\";A1;НАЙТИ("\";A1)+1)+1)+1))
     
  7. baddavil

    baddavil Создатель

    Регистр.:
    14 мар 2012
    Сообщения:
    25
    Симпатии:
    1
    Хотя лучше так:
    Код:
    =ЛЕВСИМВ(A1;ЕСЛИОШИБКА(НАЙТИ("\-\-\";ПОДСТАВИТЬ(A1;"\";"\-\-\";4));ДЛСТР(A1)))
    тогда ошибку при количестве подпапок меньше 4 не выдает, и можно задать это количество подпапок не меняя формулу.
     
Статус темы:
Закрыта.