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

Нормализация данных в таблице

12.05.2020, 11:55. Показов 1558. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Имеется множество файлов с примерно одинаковой структурой и их нужно преобразовать в вид, более удобный для работы и обработки данных. Файл с примером и скрины во вложении.
Требуется помощь с преобразованием данных на первом листе в вид, который представлен на втором листе. Кол-во групп, периодов/кварталов и целей может меняться.
Миниатюры
Нормализация данных в таблице   Нормализация данных в таблице  
Вложения
Тип файла: rar Преобразование данных.rar (8.7 Кб, 7 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2020, 11:55
Ответы с готовыми решениями:

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть...

Нормализация данных
Здравствуйте, недавно уже задавал вопрос на форуме касательно нормализации данных в выборке. Но в...

Нормализация данных
Разрабатываю БД "Студгородок". Возникла проблема с ключами и нормализацией данных. Не совсем...

Нормализация данных
Уважаемые форумчане! Помогите пожалуйста привести данные к 3й нормальной форме. В 1м архиве то, что...

3
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
13.05.2020, 16:34 2
Лучший ответ Сообщение было отмечено llama15 как решение

Решение

Можете попробовать так :

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
Private Sub Test2()
    Dim ws As Worksheet, r As Range
    Set ws = Worksheets("Исходник")
    Dim txt$, a1, a2, a3, rw&: rw = 6 'Номер первой строки
    Dim rw1&, rw2&, rwMax&, clMax&, cl&, cPlan&, clPlan&
    
    Set r = ws.Range("B4").CurrentRegion
    a1 = r.Value: a3 = ws.Range("C1:C3").Value
    rwMax = UBound(a1) - 1: clMax = UBound(a1, 2)    
    cPlan = (clMax - 6) / 2
    ReDim a2(1 To (rwMax - rw) * cPlan, 1 To 13)
 
    For clPlan = 1 To cPlan
        For rw1 = rw To rwMax
            If Not IsEmpty(a1(rw1, 1)) Then
               rw2 = rw2 + 1: a2(rw2, 1) = txt
               For cl = 2 To 7
                   a2(rw2, cl) = a1(rw1, cl - 1)
               Next
               a2(rw2, cl) = a1(4, 5 + clPlan * 2)
               a2(rw2, cl + 1) = a1(rw1, 5 + clPlan * 2)
               a2(rw2, cl + 2) = a1(rw1, 6 + clPlan * 2)
               For cl = 1 To 3
                   a2(rw2, cl + 10) = a3(cl, 1)
               Next
            Else: txt = a1(rw1, 2): End If
        Next
    Next
    With Worksheets.Add.Cells(1).Resize(rw2, 13)
         .Value = a2: .Columns.AutoFit
         .Borders.LineStyle = xlContinuous
    End With
End Sub
1
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 21
14.05.2020, 09:59  [ТС] 3
Все работает! Спасибо!
Теперь буду разбираться и "допиливать".
0
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
14.05.2020, 10:21 4
Если Вы имеете ввиду заголовки(шапку) таблицы, то строки# 29-32 могут стать такими.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
    With Worksheets.Add
         .Cells(2, 1).Resize(rw2, 13).Value = a2
         With .Cells(1, 1).Resize(, 13) '.Range("A1:M1")
              .Font.Bold = True
              .Interior.ColorIndex = 35
              '.Value = Array("Группа", "№", "Цель", "Критерий", "Вид", "Оценка", "Ед. измерения", "Период", "Вес", "План", "ФИО", "Должность", "Подразделение")
              .Value = Split("Группа,№,Цель,Критерий,Вид,Оценка,Ед. измерения,Период,Вес,План,ФИО,Должность,Подразделение", ",")
         End With
         With .UsedRange
              .Columns.AutoFit
              .Borders.LineStyle = xlContinuous
         End With
    End With
0
14.05.2020, 10:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2020, 10:21
Помогаю со студенческими работами здесь

Нормализация баз данных
Интересует вопрос. При изменении основной таблицы, таблицы 1,2,3 нормальной формы должны...

Нормализация Базы Данных
Добрый день, господа программисты! Хочу создать небольшую базу данных для игры. База должна...

Нормализация базы данных
Нужно написать приложение на любом языке программирования (желательно VBA Access) для приведения...

Нормализация базы данных
Делаю курсовую работу, в которой проектирую базу данных таксопарка. В первоначальном варианте было...

Нормализация базы данных
Здравствуйте, помогите с нормализацией базы данных. Я нормализовал до 3 нормальной формы, но сильно...

Нормализация базы данных
Здравствуйте, уважаемые эксперты. Имеется база данных с тестами, в которой 2 таблицы: 1. Разделы...


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

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