![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 13.08.2015
Сообщений: 3
|
![]()
Vitas174
Member Откуда: Сообщений: 1 Нужно из ячейки, в которой через разделитель перечислены по порядку данные, вытащить данные и оформить в табличном виде построчно, сохраняя общую структуру таблицы (поля заказ, статус). См. файл. Оригинальные данные для обработки - см. Лист "Оригинал" Нужно сделать - см. Лист "Результат". Я подготовил следующий алгоритм: шаг - функция в XLS - функция в VBA 1 шаг: Вычисляем полную длина символов в ячейке (А2) - ДЛСТР() - LEN() 2 шаг: Получаем данные в ячейке без разделителя - выкидываем разделитель - ПОДСТАВИТЬ() - SUBSTITUTE() 3 шаг: Узнаем длину символов в ячейке без разделителей - ДЛСТР() - LEN() 4 шаг: Вычисляем арифметически кол-во разделителей в ячейке (по сути кол-во итераций) 5 шаг: Ставим цикл 7 шаг: Поиск номера символа соответствующий разделителю (в нашем случае $) - ПОИСК() - SEARCH() 8 шаг: Возвращает кол-во указанных символов, начиная с первого - ЛЕВСИМВ() - LEFT() 9 шаг: зацикливаем только нужно сдвиг разделителя предусмотреть вроде бы в XLS получил что нужно для первого значения и "ручками" для последующих. в ручной макрос занес но как назначить переменные, массивы и цикл - не зна Мейби кто подскажет, хотя бы структуру макроса, детали я сам смогу дожевать и выложить в ветку. Заранее большое спс всем откликнувшимся. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Не нужно вычислять никакую длину.
1.Создаём новый лист с шапкой для результата. 2. Цикл по листу - определяем строку куда будем выводить результат (первую свободную), split() первой ячейки по $, выгружаем полученный массив 2.2 split() второй... 2.3 третьей... 2.n так до конца строки, две последние просто заполняем по размеру массива из любой предыдущей строки. Ну параллельно можно контролировать что все массивы одинаковые по размеру. Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 13.08.2015 в 17:38. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]() Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВПР через разделитель | Евгений Таб | Microsoft Office Excel | 4 | 13.08.2015 02:07 |
Как разделить данные из одной ячейки и разнести их в разные, через обычные формулы | Vasilev | Microsoft Office Excel | 15 | 24.09.2014 10:49 |
Массивы, авторизация через ВК, как вытащить данные? | Delphinchik | PHP | 0 | 23.01.2012 19:12 |
построчное сохранение данных в табличном виде | kvs | Microsoft Office Excel | 4 | 26.04.2010 19:26 |
Форма с несколькими таблицами в табличном виде. Как сделать? | Jenya | Microsoft Office Access | 1 | 15.11.2008 20:37 |