Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Автор Тема: Как разбить данные из ячейки на несколько строк?  (Прочитано 1276 раз)

0 Пользователей и 1 Гость просматривают эту тему.

shatun

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 1

Размещаю сразу в платном разделе т.к. уже на бесплатную поддержку не очень надеюсь.
Сразу оговорюсь: печальный опыт не с вашего форума.
Итак уже есть готовый код от ктулху АКА ikki и думаю будет справедливо если он и поможет
сам код:
Sub t()   
  Dim i&, j&, k&, n&, a, b, x   
  a = [a1].CurrentRegion.Value   
  For i = 1 To UBound(a)   
    n = n + Len(a(i, 2)) - Len(Replace(a(i, 2), ",", "")) + 1   
  Next 
  ReDim b(1 To n, 1 To UBound(a, 2)): n = 0   
  For i = 1 To UBound(a)   
    x = Split(a(i, 2), ",")   
    For j = 0 To UBound(x)   
      n = n + 1   
      For k = 1 To UBound(a, 2)   
        If k = 2 Then b(n, 2) = x(j) Else b(n, k) = a(i, k)   
      Next 
    Next 
  Next 
  Sheets(2).[a1].Resize(UBound(b), UBound(b, 2)).Value = b   
End Sub
Всё работает разбирая весь массив данных (во втором листе результат), но для меня немного другая задача. Очень нужно чтобы повторяющиеся позиции также разбивались построчно..

В выборе важна последовательность
в примере:
Комбайн красный, Комбайн зелёный, Комбайн синий | 1111, 2222, 3333
результат:
Комбайн красный = 1111
Комбайн зелёный = 2222
Комбайн синий = 3333
Сер. номера пишут в том же порядке, но если нет сер. номера, обычно пишут б/н
Тогда:
Комбайн красный, Комбайн зелёный, Комбайн синий | 1111, б/н, 2222
результат:
Комбайн красный = 1111
Комбайн зелёный = б/н
Комбайн синий = 3333
Здесь всё работает.

Однако может и не быть серийного номера и тогда могут в конце вообще ничего не написать.
Например так:
Комбайн красный, Комбайн зелёный, Комбайн синий | 1111, 2222
Возможен такой результат:
Тогда результат может быть таким:
Комбайн красный = 1111
Комбайн зелёный = 2222
Комбайн синий = б/н

Можно рассчитывать на помощь?
Записан

RAN

  • Постоялец
  • ***
  • Уважение: +12/-0
  • Оффлайн Оффлайн
  • Сообщений: 125

ктулху АКА ikki здесь бывает крайне редко.
Если вам нужно его решение, то ждите.
Если просто решение - пишите, через пару часов смогу заняться.
Записан

ikki

  • Пользователь
  • **
  • Уважение: +3/-0
  • Оффлайн Оффлайн
  • Сообщений: 28

ктулху АКА ikki здесь бывает крайне редко.
чё эт?
Записан

RAN

  • Постоялец
  • ***
  • Уважение: +12/-0
  • Оффлайн Оффлайн
  • Сообщений: 125

Ну извини!
Я посмотрел, ты последний раз был в прошлом годе.
Мне показалось, что раз в год - это не часто.  :)
Записан

ikki

  • Пользователь
  • **
  • Уважение: +3/-0
  • Оффлайн Оффлайн
  • Сообщений: 28

Ну извини!
да незашто.
я пароль забыл.
заходил как гость.
а сейчас пришлось восстановить.

кстати, я и на программерсе забыл.
но там он нифига не восстанавливается - не приходит письмо.
Записан
 



Темы без ответов

22.05.2018 11:38 Скрипт написать который допишет данные в файл 404
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 766
14.02.2018 10:11 Подготовить читабельную отчетность по платежам 714
23.01.2018 13:46 Найти вероятность повторной покупки 696
12.01.2018 23:56 Сделать отчет на Power BI (Dashboard) 937
06.09.2017 10:43 Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое 954
17.08.2017 12:15 Гиперссылка и фильтр одновременно макрос 1250
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 2790
15.03.2017 15:45 автозамена картинок PowerPoint 1713
11.03.2017 13:43 Изменить нумерацию страниц 1930





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.088 секунд. Запросов: 96.