Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Разбить данные в ячейке - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Разбить данные в ячейке (Формулы/Formulas)
Разбить данные в ячейке
Aleksej Дата: Вторник, 15.03.2016, 11:29 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток уважаемы форумчане! :)

Нужна помощь в написании формулы. :'(
Суть задачи такова.
Имеется ячейка с данными: Договор РСН-0098/15 расценка по аналогу с кодом 1147172 Швеллер №12П С345-3
Необходимо данные этой ячейки разбить на 3 части, чтоб получилось
1. РСН-0098/15 (идет всегда после слова ДОГОВОР)
2. 1147172 (Чаще всего семизначный, незнаю как ещё можно классифицировать)
3. Швеллер №12П С345-3 (Идет после п. 2 и до конца строки)

Пример в приложении.

Строк много, вручную делать жесть %)
К сообщению приложен файл: 342342.xlsx(9Kb)
 
Ответить
СообщениеДоброго времени суток уважаемы форумчане! :)

Нужна помощь в написании формулы. :'(
Суть задачи такова.
Имеется ячейка с данными: Договор РСН-0098/15 расценка по аналогу с кодом 1147172 Швеллер №12П С345-3
Необходимо данные этой ячейки разбить на 3 части, чтоб получилось
1. РСН-0098/15 (идет всегда после слова ДОГОВОР)
2. 1147172 (Чаще всего семизначный, незнаю как ещё можно классифицировать)
3. Швеллер №12П С345-3 (Идет после п. 2 и до конца строки)

Пример в приложении.

Строк много, вручную делать жесть %)

Автор - Aleksej
Дата добавления - 15.03.2016 в 11:29
_Boroda_ Дата: Вторник, 15.03.2016, 11:40 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Только Вы зря так мало примеров привели.
Код
=ПСТР(C4;9;ПОИСК(" ";C4;9)-9)

Код
=ПСТР(C4;ПОИСК(" кодом ";C4)+7;ПОИСК(" ";ПСТР(C4;ПОИСК(" кодом ";C4)+8;99)))

Код
=ПСТР(C4;ПОИСК(F4;C4)+ДЛСТР(F4)+1;99)
К сообщению приложен файл: 342342_1.xlsx(10Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Только Вы зря так мало примеров привели.
Код
=ПСТР(C4;9;ПОИСК(" ";C4;9)-9)

Код
=ПСТР(C4;ПОИСК(" кодом ";C4)+7;ПОИСК(" ";ПСТР(C4;ПОИСК(" кодом ";C4)+8;99)))

Код
=ПСТР(C4;ПОИСК(F4;C4)+ДЛСТР(F4)+1;99)

Автор - _Boroda_
Дата добавления - 15.03.2016 в 11:40
Aleksej Дата: Вторник, 15.03.2016, 11:47 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, спасибо большое! :) вроде все работает hands

P.S. Можно было и больше примеров, но они все одно по одному.

Спасибо за помощь! :) hands

 
Ответить
Сообщение_Boroda_, спасибо большое! :) вроде все работает hands

P.S. Можно было и больше примеров, но они все одно по одному.

Спасибо за помощь! :) hands


Автор - Aleksej
Дата добавления - 15.03.2016 в 11:47
abtextime Дата: Вторник, 15.03.2016, 11:55 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Мой вариант, у _Бороды_, конечно, как всегда, изящнее :)
[moder]А почто не показываете формулы? Уж очень лениво файл качать.
К сообщению приложен файл: _342342.xlsx(10Kb)


Сообщение отредактировал _Boroda_ - Вторник, 15.03.2016, 11:58
 
Ответить
СообщениеМой вариант, у _Бороды_, конечно, как всегда, изящнее :)
[moder]А почто не показываете формулы? Уж очень лениво файл качать.

Автор - abtextime
Дата добавления - 15.03.2016 в 11:55
Sony Дата: Вторник, 15.03.2016, 12:56 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Забыли про готовый инструмент (Excel 2007)

Данные/Работа с данными/Текст по столбцам
К сообщению приложен файл: 3523414.jpg(64Kb)
 
Ответить
СообщениеЗабыли про готовый инструмент (Excel 2007)

Данные/Работа с данными/Текст по столбцам

Автор - Sony
Дата добавления - 15.03.2016 в 12:56
abtextime Дата: Вторник, 15.03.2016, 13:04 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
2 Модератор: Стыдно :)
 
Ответить
Сообщение2 Модератор: Стыдно :)

Автор - abtextime
Дата добавления - 15.03.2016 в 13:04
abtextime Дата: Вторник, 15.03.2016, 13:10 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
2 Sony
Думаю, что никто не забывал, но есть нюансы.

Преимущество формульного подхода - при добавлении новых ячеек выделение ключевых полей происходит автоматически. Кроме того, формулы гипотетически обрабатывают вариант, в котором "расценка по аналогу" может быть изменена, например, на "расценка стандартная по аналогу" и т.д.
 
Ответить
Сообщение2 Sony
Думаю, что никто не забывал, но есть нюансы.

Преимущество формульного подхода - при добавлении новых ячеек выделение ключевых полей происходит автоматически. Кроме того, формулы гипотетически обрабатывают вариант, в котором "расценка по аналогу" может быть изменена, например, на "расценка стандартная по аналогу" и т.д.

Автор - abtextime
Дата добавления - 15.03.2016 в 13:10
abtextime Дата: Вторник, 15.03.2016, 13:14 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Вот этот кошмар

Код
=ЛЕВБ(ПОДСТАВИТЬ(C4;"Договор ";"");ПОИСК(" ";ПОДСТАВИТЬ(C4;"Договор ";"")))


Код
=ПСТР(C4;ПОИСК("с кодом";C4)+7;ПОИСК(" ";ПРАВБ(C4;ДЛСТР(C4)-ПОИСК("с кодом";C4)-7)))


Код
=ПРАВБ(C4;ДЛСТР(C4)-ПОИСК(F4;C4)-ДЛСТР(F4))
 
Ответить
СообщениеВот этот кошмар

Код
=ЛЕВБ(ПОДСТАВИТЬ(C4;"Договор ";"");ПОИСК(" ";ПОДСТАВИТЬ(C4;"Договор ";"")))


Код
=ПСТР(C4;ПОИСК("с кодом";C4)+7;ПОИСК(" ";ПРАВБ(C4;ДЛСТР(C4)-ПОИСК("с кодом";C4)-7)))


Код
=ПРАВБ(C4;ДЛСТР(C4)-ПОИСК(F4;C4)-ДЛСТР(F4))

Автор - abtextime
Дата добавления - 15.03.2016 в 13:14
DrMini Дата: Вторник, 15.03.2016, 18:20 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 154
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013
abtextime, Попробовал (для своих нужд) Ваш вариант. Спасибо работает. respect
 
Ответить
Сообщениеabtextime, Попробовал (для своих нужд) Ваш вариант. Спасибо работает. respect

Автор - DrMini
Дата добавления - 15.03.2016 в 18:20
МВТ Дата: Вторник, 15.03.2016, 22:40 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
А я, как обычно UDF на регулярке предложу. Мне кажется, для Вашего случаю она должна дать универсальное решение. Как вариант, на ее основе можно сделать макрос, который будет разносить данные
[vba]
Код
Option Explicit
Function tt(Text As String, Idx As Integer) As String
    If Idx < 1 Then Exit Function
    Dim Obj As Object
    With CreateObject("VBScript.Regexp")
        .IgnoreCase = True
        .Pattern = "Договор +([А-ЯЁ]+-\d+/\d+).+кодом +(\d+) +(.+)"
        Set Obj = .Execute(Text)
        If Obj.Count = 0 Then Exit Function
        If Obj(0).Submatches.Count < Idx Then Exit Function
        tt = Obj(0).Submatches.Item(Idx - 1)
    End With
End Function
[/vba]
 
Ответить
СообщениеА я, как обычно UDF на регулярке предложу. Мне кажется, для Вашего случаю она должна дать универсальное решение. Как вариант, на ее основе можно сделать макрос, который будет разносить данные
[vba]
Код
Option Explicit
Function tt(Text As String, Idx As Integer) As String
    If Idx < 1 Then Exit Function
    Dim Obj As Object
    With CreateObject("VBScript.Regexp")
        .IgnoreCase = True
        .Pattern = "Договор +([А-ЯЁ]+-\d+/\d+).+кодом +(\d+) +(.+)"
        Set Obj = .Execute(Text)
        If Obj.Count = 0 Then Exit Function
        If Obj(0).Submatches.Count < Idx Then Exit Function
        tt = Obj(0).Submatches.Item(Idx - 1)
    End With
End Function
[/vba]

Автор - МВТ
Дата добавления - 15.03.2016 в 22:40
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Разбить данные в ячейке (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!