Имеется таблица. В ней есть столбец с номенклатурой по месяцам, общем количеством и базовым за ед. Нужно получить таблицу с несколькими столбцами: номенклатура, месяц и базовая ед. Как это сделать?
Имеется таблица. В ней есть столбец с номенклатурой по месяцам, общем количеством и базовым за ед. Нужно получить таблицу с несколькими столбцами: номенклатура, месяц и базовая ед. Как это сделать?vanaol
Ну тогда уж и макросом. Тоже для любого количества имён. [vba]
Код
Sub tt() Dim c As Range, t$, col As New Collection, k, i& Const s As String = "|январь|февраль|март|апрель|май|июнь|июль|август|сентябрь|октябрь|ноябрь|декабрь|"
For Each c In [b5:b11] If InStr(s, "|" & c.Value & "|") = 0 Then t = c.Value Else col.Add c.Offset(, -1).Value & "|" & t & "|" & c.Value & "|" & c.Offset(, 1).Value End If Next
i = 20 For Each k In col i = i + 1 Cells(i, 1).Resize(1, 4) = Split(k, "|") Cells(i, 1).Offset(, 3) = --Cells(i, 1).Offset(, 3) Next End Sub
[/vba] Найдите отличие от планеты
Ну тогда уж и макросом. Тоже для любого количества имён. [vba]
Код
Sub tt() Dim c As Range, t$, col As New Collection, k, i& Const s As String = "|январь|февраль|март|апрель|май|июнь|июль|август|сентябрь|октябрь|ноябрь|декабрь|"
For Each c In [b5:b11] If InStr(s, "|" & c.Value & "|") = 0 Then t = c.Value Else col.Add c.Offset(, -1).Value & "|" & t & "|" & c.Value & "|" & c.Offset(, 1).Value End If Next
i = 20 For Each k In col i = i + 1 Cells(i, 1).Resize(1, 4) = Split(k, "|") Cells(i, 1).Offset(, 3) = --Cells(i, 1).Offset(, 3) Next End Sub
Выгружает собранную коллекцию строк на лист. Можете выгружать куда угодно - начальная ячейка Cells(i, 1) в данном случае первая двадцатой строки этого же листа. Шапку можно или нарисовать заранее вручную, или записать это рисование в макрос и добавить в код.
Выгружает собранную коллекцию строк на лист. Можете выгружать куда угодно - начальная ячейка Cells(i, 1) в данном случае первая двадцатой строки этого же листа. Шапку можно или нарисовать заранее вручную, или записать это рисование в макрос и добавить в код.Hugo