Доброго времени суток ! Прошу помочь показать как перенести в сводную таблицу с листа 1 , чтобы был результат как на листе 2 . круче верчу ничего не получается . Спасибо. Табличку прилагаю.
Доброго времени суток ! Прошу помочь показать как перенести в сводную таблицу с листа 1 , чтобы был результат как на листе 2 . круче верчу ничего не получается . Спасибо. Табличку прилагаю.Окся
Можно с помощью 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
Можно с помощью 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] Жмите на кнопку результат будет вставлен на Лист3msi2102