Добрый день! Дана таблица из нескольких столбцов с заголовками. Заголовки - это категории, остальные значения в столбцах - номера товаров. Нужно номера поместить в один столбец, а во второй столбец добавить соответствующие номерам категории. Пример во вложении. Посмотрите, пожалуйста. Заранее спасибо!
Добрый день! Дана таблица из нескольких столбцов с заголовками. Заголовки - это категории, остальные значения в столбцах - номера товаров. Нужно номера поместить в один столбец, а во второй столбец добавить соответствующие номерам категории. Пример во вложении. Посмотрите, пожалуйста. Заранее спасибо!saari
For j = 1ToUBound(arrSrc, 2) For i = 2ToUBound(arrSrc, 1) If arrSrc(i, j) <> ""Then
r = r + 1
arrRes(r, 1) = arrSrc(i, j)
arrRes(r, 2) = arrSrc(1, j) EndIf Next i Next j
For j = 1ToUBound(arrSrc, 2) For i = 2ToUBound(arrSrc, 1) If arrSrc(i, j) <> ""Then
r = r + 1
arrRes(r, 1) = arrSrc(i, j)
arrRes(r, 2) = arrSrc(1, j) EndIf Next i Next j
Function saari(category As Range, tovar As Range, q AsBoolean, i AsInteger)
arr1 = category.Value
arr2 = Application.Transpose(tovar.Value) If i < LBound(arr2) Or i > WorksheetFunction.Count(tovar) ThenExitFunction
x = 1
y = 1 WithCreateObject("Scripting.Dictionary") DoWhile .Count < i IfNotIsEmpty(arr2(y, x)) Then .Add Key:=arr2(y, x), Item:=arr1(1, y)
x = IIf(x = UBound(arr2, 2), 1, x + 1)
y = IIf(x = 1, y + 1, y) Loop If q Then
iarr = .items
saari = iarr(i - 1) Else
karr = .keys
saari = karr(i - 1) EndIf EndWith EndFunction
Ну и до кучи вариант пользовательской функции
Function saari(category As Range, tovar As Range, q AsBoolean, i AsInteger)
arr1 = category.Value
arr2 = Application.Transpose(tovar.Value) If i < LBound(arr2) Or i > WorksheetFunction.Count(tovar) ThenExitFunction
x = 1
y = 1 WithCreateObject("Scripting.Dictionary") DoWhile .Count < i IfNotIsEmpty(arr2(y, x)) Then .Add Key:=arr2(y, x), Item:=arr1(1, y)
x = IIf(x = UBound(arr2, 2), 1, x + 1)
y = IIf(x = 1, y + 1, y) Loop If q Then
iarr = .items
saari = iarr(i - 1) Else
karr = .keys
saari = karr(i - 1) EndIf EndWith EndFunction