Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 21
1

Переформатирование таблицы с данными

12.01.2017, 11:27. Показов 997. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, коллеги.

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

Обычно, в ручном режиме происходит перенос данных с формата "Как есть" в формат, который Вы можете найти на листе "Как нужно".

Ввиду того, что объем данных становится все больше (на данный момент, в день количество строк с данными доходит до 1 000), соответственно процесс по их трансформации также удлиняется.

Напишите пожалуйста, каким образом, можно осуществить трансформацию данных в формат, который находится на листе "Как нужно"?

Буду признателен Вам за любую помощь.

С уважением,

Евгений
Вложения
Тип файла: xlsx Sales Report_Draft_1.2.xlsx (18.1 Кб, 2 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2017, 11:27
Ответы с готовыми решениями:

Переформатирование данных таблицы Excel
Добрый день, уважаемые форумчане! Помогите, пожалуйста, решить задачку. Еженедельно с терминалов...

Переформатирование
Друзья, подскажите пожалуйста. Sub example_02() Dim x, y(), i&, j&, s$ x =...

Переформатирование таблицы
В предыдущей теме мне дали совет, который требует переформатирование таблицы в более правильный...

Копировать таблицу с данными, перенос таблицы из одной БД в другую (также с данными)
Доброе времени суток всем! Помогите разобраться, как скопировать таблицу вместе с данными в PL/SQL...

3
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
12.01.2017, 12:15 2
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub Преобразовать_чистые_продажи()
    Dim i&, j&, k&, LastRow&, Region, Manager, A, B
    Cells.UnMerge
    Cells.ClearFormats
    [b7] = "Код"
    [C7] = "Номенклатура"
    [D7] = "Единица имерения"
    [F7] = "Менеджер"
    Columns("A:A").Delete
    Rows(8).Delete
    Rows("1:6").Delete
    Columns("A:L").ColumnWidth = 32.5
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    A = Range("A1:L" & LastRow).Value
    ReDim B(1 To LastRow, 1 To 12)
    For j = 1 To 12
        B(1, j) = A(1, j)
    Next
    k = 1
    For i = 2 To LastRow - 1
        If Trim(A(i, 1)) = "" Then
            If Trim(A(i, 4)) <> "" Then Region = A(i, 4)
            If Trim(A(i, 5)) <> "" Then Manager = A(i, 5)
        Else
            k = k + 1
            For j = 1 To 12
                B(k, j) = A(i, j)
            Next
            B(k, 4) = Region
            B(k, 5) = Manager
        End If
    Next
    Range("A1:L" & LastRow).Value = B
    Rows(1).Font.Bold = True
End Sub
1
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 21
12.01.2017, 13:15  [ТС] 3
Уважаемый KoGG,

Большое Вам спасибо, что откликнулись на эту тему.

Напишите пожалуйста, а можно также вставлять наименование контрагента в отдельный столбец, как показано на листе "Как нужно", столбец D?
Возможно, Вы скачали первую версию файла (где я запамятовал указать этот столбец).

С уважением,

Евгений
0
5606 / 1592 / 412
Регистрация: 23.12.2010
Сообщений: 2,382
Записей в блоге: 1
12.01.2017, 13:59 4
Лучший ответ Сообщение было отмечено Евгений Жуков как решение

Решение

Под новый файл:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub Преобразовать_чистые_продажи_2()
    Dim i&, j&, k&, LastRow&, Kontragent, Region, Manager, A, B
    Cells.UnMerge
    Cells.ClearFormats
    Rows(8).Delete
    Rows("1:6").Delete
    Columns("A:M").ColumnWidth = 32.5
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    Range("A1:C" & LastRow).Value = Range("B1:D" & LastRow).Value
    Columns("D").ClearContents
    [A1] = "Код"
    [b1] = "Номенклатура"
    [C1] = "Единица имерения"
    [f1] = "Менеджер"
    [d1] = "Контрагент"
    A = Range("A1:M" & LastRow).Value
    ReDim B(1 To LastRow, 1 To 13)
    For j = 1 To 13
        B(1, j) = A(1, j)
    Next
    k = 1
    For i = 2 To LastRow - 1
        If Trim(A(i, 1)) = "" Then
            If Trim(A(i, 2)) <> "" Then Kontragent = A(i, 2)
            If Trim(A(i, 5)) <> "" Then Region = A(i, 5)
            If Trim(A(i, 6)) <> "" Then Manager = A(i, 6)
        Else
            k = k + 1
            For j = 1 To 13
                B(k, j) = A(i, j)
            Next
            B(k, 4) = Kontragent
            B(k, 5) = Region
            B(k, 6) = Manager
        End If
    Next
    Range("A1:M" & LastRow).Value = B
    Rows(1).Font.Bold = True
End Sub
1
12.01.2017, 13:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2017, 13:59
Помогаю со студенческими работами здесь

Как выдавать ошибку при заполнении таблицы несоответствующими данными из другой таблицы
Есть 2 таблицы где есть: код клиента, номер договора, сума платежа, .... , а в другой таблице ...

Автоматическое заполнение таблицы данными из другой таблицы при соблюдении определенного условия
Добрый день! Объяснить сложно, поэтому попробую на примере. По работе составляю графики...

Как заполнить ячейку таблицы данными из той же таблицы
Добрый день есть таблица parse в ней есть поля title и fullTitle. fullTitle сейчас пустой скажите...

Автоматическое заполнение таблицы данными из другой таблицы
Добрый день. Возникла проблема с Экселем. Требуется на листе Production автоматически вставить...

Update таблицы в БД данными из таблицы в html
Здравствуйте, допустим имеется простая таблица в бд: Код| Имя| Фамилия 1| Петя| Иванов 2|...

Заполнение таблицы данными из другой таблицы
Нужно сделать запрос на заполнение пустой колонки в таблице1 из таблицы2, есть общее поле . Один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru