Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сводная таблица с большим количеством данных. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сводная таблица с большим количеством данных.
Окся Дата: Среда, 20.09.2023, 10:02 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени суток ! Прошу помочь показать как перенести в сводную таблицу с листа 1 , чтобы был результат как на листе 2 . круче верчу ничего не получается . Спасибо. Табличку прилагаю.
К сообщению приложен файл: tablichka.zip (194.9 Kb)


(*_*)
 
Ответить
СообщениеДоброго времени суток ! Прошу помочь показать как перенести в сводную таблицу с листа 1 , чтобы был результат как на листе 2 . круче верчу ничего не получается . Спасибо. Табличку прилагаю.

Автор - Окся
Дата добавления - 20.09.2023 в 10:02
msi2102 Дата: Среда, 20.09.2023, 11:01 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 414
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Можно с помощью PQ, там 2-4 строчки кода будет, а можно с помощью макроса:
[vba]
Код
Sub Макрос1()
    Dim arr1, arr2, n As Long, m As Long, i As Long
    arr1 = Worksheets("Лист1").Range("A1:T" & Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row)
    ReDim arr2(1 To (UBound(arr1) - 1) * (UBound(arr1, 2) - 1) + 1, 1 To 3)
    i = 2
    For n = 2 To UBound(arr1)
        For m = 2 To UBound(arr1, 2)
            arr2(i, 1) = arr1(1, m)
            arr2(i, 2) = arr1(n, 1)
            arr2(i, 3) = arr1(n, m)
            i = i + 1
        Next
    Next
    arr2(1, 1) = "id склада"
    arr2(1, 2) = "id товара"
    arr2(1, 3) = "Кол-во"
    Worksheets("Лист3").Cells.Clear
    Worksheets("Лист3").Range("A1").Resize(UBound(arr2), UBound(arr2, 2)) = arr2
End Sub
[/vba]
Жмите на кнопку результат будет вставлен на Лист3
К сообщению приложен файл: kopija_tablichka.xlsm (470.0 Kb)


Сообщение отредактировал msi2102 - Среда, 20.09.2023, 11:02
 
Ответить
СообщениеМожно с помощью PQ, там 2-4 строчки кода будет, а можно с помощью макроса:
[vba]
Код
Sub Макрос1()
    Dim arr1, arr2, n As Long, m As Long, i As Long
    arr1 = Worksheets("Лист1").Range("A1:T" & Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row)
    ReDim arr2(1 To (UBound(arr1) - 1) * (UBound(arr1, 2) - 1) + 1, 1 To 3)
    i = 2
    For n = 2 To UBound(arr1)
        For m = 2 To UBound(arr1, 2)
            arr2(i, 1) = arr1(1, m)
            arr2(i, 2) = arr1(n, 1)
            arr2(i, 3) = arr1(n, m)
            i = i + 1
        Next
    Next
    arr2(1, 1) = "id склада"
    arr2(1, 2) = "id товара"
    arr2(1, 3) = "Кол-во"
    Worksheets("Лист3").Cells.Clear
    Worksheets("Лист3").Range("A1").Resize(UBound(arr2), UBound(arr2, 2)) = arr2
End Sub
[/vba]
Жмите на кнопку результат будет вставлен на Лист3

Автор - msi2102
Дата добавления - 20.09.2023 в 11:01
Окся Дата: Среда, 20.09.2023, 11:14 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Очень круто ! Спасибо большое!! hands


(*_*)
 
Ответить
СообщениеОчень круто ! Спасибо большое!! hands

Автор - Окся
Дата добавления - 20.09.2023 в 11:14
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!