Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование столбца данных в матрицу / 4 сообщений из 4, страница 1 из 1
21.09.2007, 13:22:52
    #34817598
Oleg_Slip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование столбца данных в матрицу
Всем добрый день! Имеется одномерный набор данных, например:
02-006
02-013
02-059
02-102
02-182
02-192
02-252
02-279
02-288
02-371
02-403
02-590
* 02-614
02-614
Надо разместить его на листе в 3-х столбцах таким образом:
02-006 02-182 02-288 02-590
02-013 02-192 02-371 * 02-614
02-059 02-252 02-403 02-614
02-102 02-279
Есть ли в Excel-е встроенный метод, способный сделать это?
...
Рейтинг: 0 / 0
21.09.2007, 14:39:39
    #34818034
udgeen69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование столбца данных в матрицу
а логика то какая в таком разбиении?
...
Рейтинг: 0 / 0
21.09.2007, 15:52:07
    #34818344
Oleg_Slip
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование столбца данных в матрицу
udgeen69а логика то какая в таком разбиении?
Из базы выбирается одно поле - заказы для исполнителей. Количество заказов по каждому исполнителю от 10 до 500. Для каждого исполнителя данные размещаются в 15 колонках. Вот.
Я программно расчитываю количество строк для каждого исполнителя и вывожу данные. Хотелось бы узнать есть ли встроенные методы для решения этой задачи чтобы не изобретать велосипед.
...
Рейтинг: 0 / 0
22.09.2007, 09:15:24
    #34819277
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование столбца данных в матрицу
На всякий случай примерчик, вдруг пригодится
Код: plaintext
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.
Sub Test()
Dim myArr() As Variant, myRng As Range
Dim iCol As Range, iRow As Range
Dim x As Long, y As Long, z As Long, i As Long
' сколько столбцов
 z =  15 
 
 myArr() = Selection.Value ' тут ваше заполнение массива
 
 x = Fix(UBound(myArr) / z)
 y = UBound(myArr) Mod z
 If y >  0  Then x = x +  1  Else: y = z
    
 With Range("A1")
  Set myRng = .Resize(x, y)
  If x >  1  Then Set myRng = Union(myRng, .Offset(, y).Resize(x -  1 , z - y))
  End With


 For Each iCol In myRng.Columns
  For Each iRow In iCol.Rows
   i = i +  1 
   iRow.Value = myArr(i,  1 ) ' возможно обращение к массиву будет джругим
   Next
 Next
 
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование столбца данных в матрицу / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]