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

Вход

Регистрация

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

 

= Мир MS Excel/Как перевести строки в 2 столбца? - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как перевести строки в 2 столбца?
vladimirr89 Дата: Понедельник, 19.03.2018, 17:25 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Необходимо массив данных перевести по принципу 1 столбец главный и привязывается к каждому значению следующему за ним и так по каждой стоке.
То есть первый столбец это id фильма, а значения следом - это id тэгов, необходимо чтобы каждому фильму соответствовали свои тэги. только у меня это в цифровом формате. Как транспонировать знаю, но в данном случае похоже что нужен ВБА и создание циклов. Может вы подскажете какой цикл мне поможет? Пример таблички с объяснением прикрепляю.
К сообщению приложен файл: 9184737.xlsx (20.2 Kb)
 
Ответить
СообщениеНеобходимо массив данных перевести по принципу 1 столбец главный и привязывается к каждому значению следующему за ним и так по каждой стоке.
То есть первый столбец это id фильма, а значения следом - это id тэгов, необходимо чтобы каждому фильму соответствовали свои тэги. только у меня это в цифровом формате. Как транспонировать знаю, но в данном случае похоже что нужен ВБА и создание циклов. Может вы подскажете какой цикл мне поможет? Пример таблички с объяснением прикрепляю.

Автор - vladimirr89
Дата добавления - 19.03.2018 в 17:25
sboy Дата: Понедельник, 19.03.2018, 17:46 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
[vba]
Код
Sub dobav()
Dim result1()
Dim result2()
ReDim result1(1)
ReDim result2(1)
    For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        arr = Range(Cells(r, 1), Cells(r, Columns.Count).End(xlToLeft)).Value
            For i = 2 To UBound(Application.Transpose(arr))
                n = n + 1
                result1(n) = Cells(r, 1).Value
                result2(n) = arr(1, i)
                ReDim Preserve result1(UBound(result1) + 1)
                ReDim Preserve result2(UBound(result2) + 1)
            Next i
    Next
    Cells(4, 12).Resize(UBound(result1), 1) = Application.Transpose(result1)
    Cells(4, 13).Resize(UBound(result2), 1) = Application.Transpose(result2)
End Sub
[/vba]
К сообщению приложен файл: 4524901.xls (42.5 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
[vba]
Код
Sub dobav()
Dim result1()
Dim result2()
ReDim result1(1)
ReDim result2(1)
    For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        arr = Range(Cells(r, 1), Cells(r, Columns.Count).End(xlToLeft)).Value
            For i = 2 To UBound(Application.Transpose(arr))
                n = n + 1
                result1(n) = Cells(r, 1).Value
                result2(n) = arr(1, i)
                ReDim Preserve result1(UBound(result1) + 1)
                ReDim Preserve result2(UBound(result2) + 1)
            Next i
    Next
    Cells(4, 12).Resize(UBound(result1), 1) = Application.Transpose(result1)
    Cells(4, 13).Resize(UBound(result2), 1) = Application.Transpose(result2)
End Sub
[/vba]

Автор - sboy
Дата добавления - 19.03.2018 в 17:46
Nic70y Дата: Понедельник, 19.03.2018, 17:56 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 9130
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
похоже что нужен ВБА
ну чуть шо сразу ВиБиЭй
К сообщению приложен файл: 5454541.xlsx (22.2 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
похоже что нужен ВБА
ну чуть шо сразу ВиБиЭй

Автор - Nic70y
Дата добавления - 19.03.2018 в 17:56
jakim Дата: Понедельник, 19.03.2018, 18:04 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1218
Репутация: 316 ±
Замечаний: 0% ±

Excel 2010
Смотрите вариант с формулами:

для стобца L

Код
=IFERROR(INDEX(A$2:A$50;AGGREGATE(15;6;ROW(B$1:F$50)/(B$2:F$50<>"");ROWS($2:2)));"")

для стобца M

Код
=IFERROR(INDEX($B$2:$F$50;MATCH(L4;A$2:A$50;0);AGGREGATE(15;6;COLUMN($A:$J)/($A$2:$A$50=L4)/($B$2:$F$50<>"");COUNTIF(L$4:L4;L4)));"")
К сообщению приложен файл: 4978615.xlsx (24.4 Kb)


Сообщение отредактировал jakim - Понедельник, 19.03.2018, 18:05
 
Ответить
Сообщение
Смотрите вариант с формулами:

для стобца L

Код
=IFERROR(INDEX(A$2:A$50;AGGREGATE(15;6;ROW(B$1:F$50)/(B$2:F$50<>"");ROWS($2:2)));"")

для стобца M

Код
=IFERROR(INDEX($B$2:$F$50;MATCH(L4;A$2:A$50;0);AGGREGATE(15;6;COLUMN($A:$J)/($A$2:$A$50=L4)/($B$2:$F$50<>"");COUNTIF(L$4:L4;L4)));"")

Автор - jakim
Дата добавления - 19.03.2018 в 18:04
  • Страница 1 из 1
  • 1
Поиск:

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