Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Задачка, объединить данные с разных листов (http://forum.oszone.net/showthread.php?t=353403)

DimonNT 13-04-2023 18:35 3007361

Задачка, объединить данные с разных листов
 
Друзья, задали такую задачку:
Есть несколько листов с данными, в списке ФИО и некие цифры по месяцам.
Задача: Объединить данные, и выявить одинаковые ФИО и чтобы они расположились по столбацам.
Условно:
ФИО Январь Февраль Март
Иванов И.И. 242425 3434

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

У меня пока только одна мысль: Ручками скопировать на один лист..... а вот как дальше упорядочить, вопрос...
Помогите, может какие мысли накините.. может скрипт какой-нибудь накидать...
Были бы имена все одинаковые, было бы проще, но бывает что эти имена не по порядку идут и бывает некоторых имён нет.... а бывает что в трёх таблицах одинаковые имена, но за Январь данные есть, а допустим за февраль нет данных, а за март опять есть...

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

чуть продолжу
Условно говоря: Собрал данные, пусть даже вручную, на один лист...
В итоге получим:
1 столбец ФИО
2, 3, 4, 5 столбцы с данными
Надо как-то чтобы строки с одинаковыми ФИО свернулись, а данные по столбцам упали в столбцы эквивалентные свёрнутым ФИО

okshef 13-04-2023 19:53 3007372

DimonNT, Power Query
https://disk.yandex.ru/i/_aIgUD4iOng-KQ

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

DimonNT 13-04-2023 20:24 3007375

Цитата:

Цитата okshef (Сообщение 3007372)
DimonNT, Power Query
https://disk.yandex.ru/i/_aIgUD4iOng-KQ

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

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

okshef 13-04-2023 20:34 3007379

Цитата:

Цитата DimonNT
Да это не принципиально »

Версии ранее 2010 не будут работать

megaloman 13-04-2023 23:15 3007397

Вложений: 1
DimonNT, Для начала, реорганизуем таблицу:
1) листы с данными переименуем в строгом соответствии с названием месяцев. листы с месяцами можно добавлять по мере необходимости
2) создадим лист с названием, например, Свод, нарисуем на нём заголовок и отформатируем для данных
Далее - выполним макрос
Код:

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

DimonNT 14-04-2023 06:47 3007407

Цитата:

Цитата okshef
Power Query »

А можно текст запроса?... если не трудно, пожалуйста :)

okshef 14-04-2023 07:04 3007408

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

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

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


Время: 10:57.

Время: 10:57.
© OSzone.net 2001-