Разное - Задачка, объединить данные с разных листов

Ответить
Аватара пользователя
DimonNT

Разное - Задачка, объединить данные с разных листов

Сообщение DimonNT »

Друзья, задали такую задачку:

Есть несколько листов с данными, в списке ФИО и некие цифры по месяцам.

Задача: Объединить данные, и выявить одинаковые ФИО и чтобы они расположились по столбацам.

Условно:

ФИО Январь Февраль Март

Иванов И.И. 242425 3434



т.е. в данном случае может быть в феврале не было цифр, но за март были....



У меня пока только одна мысль: Ручками скопировать на один лист..... а вот как дальше упорядочить, вопрос...

Помогите, может какие мысли накините.. может скрипт какой-нибудь накидать...

Были бы имена все одинаковые, было бы проще, но бывает что эти имена не по порядку идут и бывает некоторых имён нет.... а бывает что в трёх таблицах одинаковые имена, но за Январь данные есть, а допустим за февраль нет данных, а за март опять есть...



Файл пример:
https://cloud.mail.ru/public/PTmH/XofBBqjs8




чуть продолжу

Условно говоря: Собрал данные, пусть даже вручную, на один лист...

В итоге получим:

1 столбец ФИО

2, 3, 4, 5 столбцы с данными

Надо как-то чтобы строки с одинаковыми ФИО свернулись, а данные по столбцам упали в столбцы эквивалентные свёрнутым ФИО
Аватара пользователя
DimonNT

Re: Разное - Задачка, объединить данные с разных листов

Сообщение DimonNT »

Цитата okshef:



DimonNT, Power Query

https://disk.yandex.ru/i/_aIgUD4iOng-KQ




P.S. Вы в теме не указали версию Excel



Да это не принципиально, могу и любую свежую накатить, спасибо за подсказку, утром посмотрю что это за зверь
Аватара пользователя
megaloman

Re: Разное - Задачка, объединить данные с разных листов

Сообщение megaloman »

DimonNT, Для начала, реорганизуем таблицу:

1) листы с данными переименуем в строгом соответствии с названием месяцев. листы с месяцами можно добавлять по мере необходимости

2) создадим лист с названием, например, Свод, нарисуем на нём заголовок и отформатируем для данных



Далее - выполним макрос

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Sub DimonNT()
    Const rFio = "A2", Svod = "Свод"
    Amon = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")
    Dim Asum0(0, 11)
    For i = 0 To 11
        Asum0(0, i) = 0
    Next
    Application.ScreenUpdating = False
    With CreateObject("Scripting.Dictionary")
        For m = 0 To 11
            On Error Resume Next
                Set R = Sheets(Amon(m)).Range(rFio)
                If Err.Number = 0 Then
                    j = 0
                    Do
                        Rv = R.Offset(j, 0).Value
                        If Not .Exists(Rv) Then
                            .Add Rv, Asum0
                        End If
                        Asum = .Item(Rv)
                        Asum(0, m) = Asum(0, m) + R.Offset(j, 1).Value
                        .Item(Rv) = Asum
                        j = j + 1
                    Loop Until Rv = Empty
                End If
            On Error GoTo 0
        Next
        j = 0
        Sheets(Svod).Range(rFio).Resize(10000, 13).ClearContents
        For Each k In .Keys
            Sheets(Svod).Range(rFio).Offset(j, 0) = k
            Sheets(Svod).Range(rFio).Offset(j, 1).Resize(1, 12).Value = .Item(k)
            j = j + 1
        Next
        Application.ScreenUpdating = True
    End With
End Sub





На листе Свод получим объединенные данные. Возможные проблемы - если Фамилия Имя Отчество для одного и того же человека введена на разных листах по разному.

Вашу таблицу с макросом прилагаю. Удалите только из названия файла расширение .xls
Аватара пользователя
okshef

Re: Разное - Задачка, объединить данные с разных листов

Сообщение okshef »

Нажимаете на вкладке "Данные" кнопку "Запросы и подключения". Появляется панель с запросами. Двойной клик по любому - открывается Power Query. Кликайте по нужному запросу -> Вкладка "Главная" -> "Расширенный редактор".



Там 4 запроса. 3 одинаковых для исходных таблиц.



Совсем другой вопрос - что делать, если данные будут добавляться. Это отдельный разговор
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»