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

Вход

Регистрация

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

 

= Мир MS Excel/парсинг строки и замена в другом столбце значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » парсинг строки и замена в другом столбце значений (Формулы/Formulas)
парсинг строки и замена в другом столбце значений
tigrik Дата: Четверг, 15.02.2018, 10:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
добрый день уважаемый РАЗУМ. Нужна помощь в решении такой проблемы. есть таблица 240 000 строк в которой есть 3 столбца. нужно - во втором столбце найти строку со значением LKR и на этой строке в 3 столбце сделать парсинг $$aHOL$$lBGU01$$b000018261$$nARANN, что б найти значение $$b000018261 на это число нужно заменить в первом столбце все значения между LKR (их может быть 2, 3 или 4 значения - строки)
в файле - страница in - это ввод, страница out -такой должен быть вывод.
заранее спасибо за помощь
К сообщению приложен файл: test.xlsx (10.0 Kb)


Сообщение отредактировал tigrik - Четверг, 15.02.2018, 16:24
 
Ответить
Сообщениедобрый день уважаемый РАЗУМ. Нужна помощь в решении такой проблемы. есть таблица 240 000 строк в которой есть 3 столбца. нужно - во втором столбце найти строку со значением LKR и на этой строке в 3 столбце сделать парсинг $$aHOL$$lBGU01$$b000018261$$nARANN, что б найти значение $$b000018261 на это число нужно заменить в первом столбце все значения между LKR (их может быть 2, 3 или 4 значения - строки)
в файле - страница in - это ввод, страница out -такой должен быть вывод.
заранее спасибо за помощь

Автор - tigrik
Дата добавления - 15.02.2018 в 10:59
sboy Дата: Четверг, 15.02.2018, 11:48 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Вариант пользовательской функцией
В функцию передаем диапазон второго столбца, нижнюю границу закрепляем $, верхнюю нет
[vba]
Код
Function tigrik(r As Range) As String
    lkr = WorksheetFunction.Match("LKR", r, 0)
    fstring = r.Cells(lkr).Offset(0, 1).Value
        With CreateObject("VBScript.RegExp")
            .Pattern = "\d{9}"
            tigrik = .Execute(fstring)(0)
        End With
End Function
[/vba]
К сообщению приложен файл: test-7-.xlsm (16.5 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Вариант пользовательской функцией
В функцию передаем диапазон второго столбца, нижнюю границу закрепляем $, верхнюю нет
[vba]
Код
Function tigrik(r As Range) As String
    lkr = WorksheetFunction.Match("LKR", r, 0)
    fstring = r.Cells(lkr).Offset(0, 1).Value
        With CreateObject("VBScript.RegExp")
            .Pattern = "\d{9}"
            tigrik = .Execute(fstring)(0)
        End With
End Function
[/vba]

Автор - sboy
Дата добавления - 15.02.2018 в 11:48
tigrik Дата: Четверг, 15.02.2018, 12:58 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
извиняюсь, все великолепно работает. Это просто гениально!!!!
а как что б ексел самостоятельно размножило до конца 240 000 строк? hands


Сообщение отредактировал tigrik - Четверг, 15.02.2018, 16:25
 
Ответить
Сообщениеизвиняюсь, все великолепно работает. Это просто гениально!!!!
а как что б ексел самостоятельно размножило до конца 240 000 строк? hands

Автор - tigrik
Дата добавления - 15.02.2018 в 12:58
Karataev Дата: Четверг, 15.02.2018, 22:22 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Макрос обрабатывает все строки.
 
Ответить
СообщениеМакрос обрабатывает все строки.

Автор - Karataev
Дата добавления - 15.02.2018 в 22:22
tigrik Дата: Воскресенье, 18.02.2018, 10:50 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Karataev, спасибо большое, но на большом файле вылетает с ошибкой ((((
обнуляется lngInStr = InStr(var, "$$") и после этого вылетает на var = Left(var, lngInStr - 1)
К сообщению приложен файл: test1.xlsm (82.1 Kb)


Сообщение отредактировал tigrik - Воскресенье, 18.02.2018, 11:04
 
Ответить
СообщениеKarataev, спасибо большое, но на большом файле вылетает с ошибкой ((((
обнуляется lngInStr = InStr(var, "$$") и после этого вылетает на var = Left(var, lngInStr - 1)

Автор - tigrik
Дата добавления - 18.02.2018 в 10:50
Karataev Дата: Воскресенье, 18.02.2018, 10:53 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Значит после искомых данных нет символов "$$":
$$aHOL$$lBGU01$$b000018261$$nARANN

По ним макрос ищет, где заканчиваются искомые данные.
 
Ответить
СообщениеЗначит после искомых данных нет символов "$$":
$$aHOL$$lBGU01$$b000018261$$nARANN

По ним макрос ищет, где заканчиваются искомые данные.

Автор - Karataev
Дата добавления - 18.02.2018 в 10:53
tigrik Дата: Воскресенье, 18.02.2018, 11:08 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
вот последняя строка $$aHOL$$lBGU01$$b001087963$$nARANN
К сообщению приложен файл: 8206952.xlsm (82.1 Kb)


Сообщение отредактировал tigrik - Воскресенье, 18.02.2018, 11:21
 
Ответить
Сообщениевот последняя строка $$aHOL$$lBGU01$$b001087963$$nARANN

Автор - tigrik
Дата добавления - 18.02.2018 в 11:08
abtextime Дата: Воскресенье, 18.02.2018, 11:55 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
А при чем тут последняя строка, если сбой идет при обработке строки 3031?
 
Ответить
СообщениеА при чем тут последняя строка, если сбой идет при обработке строки 3031?

Автор - abtextime
Дата добавления - 18.02.2018 в 11:55
abtextime Дата: Воскресенье, 18.02.2018, 12:04 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
вот все строки, которые, видимо, неправильно оформлены
Длина строки в столбце С
000000355 LKR $$aHOL$$lBGU01$$b001087179 26
000000359 LKR $$aHOL$$lBGU01$$b001087184 26
000000650 LKR $$aHOL$$lBGU01$$b001087503 26
000000935 LKR $$aHOL$$lBGU01$$b001087815 26
К сообщению приложен файл: 4260991.xlsx (9.2 Kb)
 
Ответить
Сообщениевот все строки, которые, видимо, неправильно оформлены
Длина строки в столбце С
000000355 LKR $$aHOL$$lBGU01$$b001087179 26
000000359 LKR $$aHOL$$lBGU01$$b001087184 26
000000650 LKR $$aHOL$$lBGU01$$b001087503 26
000000935 LKR $$aHOL$$lBGU01$$b001087815 26

Автор - abtextime
Дата добавления - 18.02.2018 в 12:04
tigrik Дата: Воскресенье, 18.02.2018, 12:05 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
abtextime, спасибо, действительно. Но я посмотрел, что в этом файле есть много таких строк. можно парсировать иначе? отсюда мне надо $$b000018261 это всегда 9 значений.
сейчас я получил новый файл с уже 400 000 строк.


Сообщение отредактировал tigrik - Воскресенье, 18.02.2018, 12:06
 
Ответить
Сообщениеabtextime, спасибо, действительно. Но я посмотрел, что в этом файле есть много таких строк. можно парсировать иначе? отсюда мне надо $$b000018261 это всегда 9 значений.
сейчас я получил новый файл с уже 400 000 строк.

Автор - tigrik
Дата добавления - 18.02.2018 в 12:05
abtextime Дата: Воскресенье, 18.02.2018, 12:07 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Это уже к уважаемому коллеге Karataev, его макрос, он и ответит, я думаю
 
Ответить
СообщениеЭто уже к уважаемому коллеге Karataev, его макрос, он и ответит, я думаю

Автор - abtextime
Дата добавления - 18.02.2018 в 12:07
tigrik Дата: Воскресенье, 18.02.2018, 12:08 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
функция уважаемого sboy,
Function tigrik(r As Range) As String
lkr = WorksheetFunction.Match("LKR", r, 0)
fstring = r.Cells(lkr).Offset(0, 1).Value
With CreateObject("VBScript.RegExp")
.Pattern = "\d{9}"
tigrik = .Execute(fstring)(0)
End With
End Function
отрабатывает великоплепно, но как ее размножить на весь столбец А?
 
Ответить
Сообщениефункция уважаемого sboy,
Function tigrik(r As Range) As String
lkr = WorksheetFunction.Match("LKR", r, 0)
fstring = r.Cells(lkr).Offset(0, 1).Value
With CreateObject("VBScript.RegExp")
.Pattern = "\d{9}"
tigrik = .Execute(fstring)(0)
End With
End Function
отрабатывает великоплепно, но как ее размножить на весь столбец А?

Автор - tigrik
Дата добавления - 18.02.2018 в 12:08
abtextime Дата: Воскресенье, 18.02.2018, 12:20 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
tigrik, а в чем проблема изменить и протянуть вниз формулу аналjгично файлу от sboy
Код

=tigrik(B1:B$3462)

?
Файл не могу приложить - больше 100 кб
 
Ответить
Сообщениеtigrik, а в чем проблема изменить и протянуть вниз формулу аналjгично файлу от sboy
Код

=tigrik(B1:B$3462)

?
Файл не могу приложить - больше 100 кб

Автор - abtextime
Дата добавления - 18.02.2018 в 12:20
tigrik Дата: Воскресенье, 18.02.2018, 12:23 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
проблема, что настоящий файл - 400 000 строк. я до 50 000 довел и замучился (((( ексель вылетает, не сохраняет файл....


Сообщение отредактировал tigrik - Воскресенье, 18.02.2018, 12:30
 
Ответить
Сообщениепроблема, что настоящий файл - 400 000 строк. я до 50 000 довел и замучился (((( ексель вылетает, не сохраняет файл....

Автор - tigrik
Дата добавления - 18.02.2018 в 12:23
abtextime Дата: Воскресенье, 18.02.2018, 12:39 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
а что происходит? как протягиваете формулу?
 
Ответить
Сообщениеа что происходит? как протягиваете формулу?

Автор - abtextime
Дата добавления - 18.02.2018 в 12:39
tigrik Дата: Воскресенье, 18.02.2018, 12:47 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
примитивно - ctrl + мышь вниз.
 
Ответить
Сообщениепримитивно - ctrl + мышь вниз.

Автор - tigrik
Дата добавления - 18.02.2018 в 12:47
Karataev Дата: Воскресенье, 18.02.2018, 12:50 | Сообщение № 17
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
 
Ответить
Сообщение

Автор - Karataev
Дата добавления - 18.02.2018 в 12:50
abtextime Дата: Воскресенье, 18.02.2018, 13:13 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
tigrik, а выделить столбец Вы можете? Если да, то выделяете столбец, вводите формулу в первой ячейке и жмёте Ctrl+Enter

НО!!!

Любой экселист Вам скажет, что такая структура с формулами 400000 строках будет неподъемной.

Используйте макросы!

Ту же UDF-ку от sboy можно на макрос переделать и не вставлять ее в столбец D
 
Ответить
Сообщениеtigrik, а выделить столбец Вы можете? Если да, то выделяете столбец, вводите формулу в первой ячейке и жмёте Ctrl+Enter

НО!!!

Любой экселист Вам скажет, что такая структура с формулами 400000 строках будет неподъемной.

Используйте макросы!

Ту же UDF-ку от sboy можно на макрос переделать и не вставлять ее в столбец D

Автор - abtextime
Дата добавления - 18.02.2018 в 13:13
tigrik Дата: Воскресенье, 18.02.2018, 13:26 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Karataev, ГЕНИАЛЬНО!!!!!!!!!!!!! РАБОТАЕТ ))))). Спасибо всем за помощь
 
Ответить
СообщениеKarataev, ГЕНИАЛЬНО!!!!!!!!!!!!! РАБОТАЕТ ))))). Спасибо всем за помощь

Автор - tigrik
Дата добавления - 18.02.2018 в 13:26
Мир MS Excel » Вопросы и решения » Вопросы по Excel » парсинг строки и замена в другом столбце значений (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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