Есть таблица, кол-во столбцов и строк которой может меняться. Необходимо, чтобы при нажатии кнопки на лист 2 выводились все значения ind_1, ind_2... ind_n в столбец (в примере показала на листе 2)
как я понимаю, таблицу нужно транспонировать, помогите, пожалуйста
Добрый вечер!
Есть таблица, кол-во столбцов и строк которой может меняться. Необходимо, чтобы при нажатии кнопки на лист 2 выводились все значения ind_1, ind_2... ind_n в столбец (в примере показала на листе 2)
как я понимаю, таблицу нужно транспонировать, помогите, пожалуйстаshady12
Судя по тому, что изображено на страницах Вашего файла, Ваша задача не в транспонировании, а в переводе двумерной таблицы в одномерную. Видимо, выражаюсь чересчур туманно. Давайте так - на Странице 1 таблица 10 х 10. Какая таблица должна быть на Странице 2? На Странице 2 в третьей строке показано: ind_1 category_3 yes
Каким образом получена эта строка?
Судя по тому, что изображено на страницах Вашего файла, Ваша задача не в транспонировании, а в переводе двумерной таблицы в одномерную. Видимо, выражаюсь чересчур туманно. Давайте так - на Странице 1 таблица 10 х 10. Какая таблица должна быть на Странице 2? На Странице 2 в третьей строке показано: ind_1 category_3 yes
Чорт! Знаете, в половине четвертого ночи, когда завтра работу представлять, даже небольшие усилия по решению головоломок кажутся чрезмерными. ================ Кажется дошло - номера второй строки таблицы 1 вывернуты наизнанку. Собственно, вторая строка эта и не нужна. Фактически надо сопоставить строку #1 со столбцом, у которого индекс равен 1, строку #2 со столбцом, у которого индекс 2 и т.д. В итоге таблица 2 строится так: строка #1 столбец у которого #1 значение в пересечении
В итоге решение будет таким - отсортировать Таблицу 1 по столбцам, чтобы они шли по порядку, задаваемому верхней строкой : #1, #2, #3 ... #10
Тогда Таблица2 будет выглядеть так:
Таблица1(i, 1) Таблица1(1, i) Таблица1(i,i)
Но это после сортировки.
Альтернатива - построить функцию отыскания столбца, в котором #i
Тогда так:
Таблица1(i, 1) Таблица1(1, f(i)) Таблица1(i,f(i))
Чорт! Знаете, в половине четвертого ночи, когда завтра работу представлять, даже небольшие усилия по решению головоломок кажутся чрезмерными. ================ Кажется дошло - номера второй строки таблицы 1 вывернуты наизнанку. Собственно, вторая строка эта и не нужна. Фактически надо сопоставить строку #1 со столбцом, у которого индекс равен 1, строку #2 со столбцом, у которого индекс 2 и т.д. В итоге таблица 2 строится так: строка #1 столбец у которого #1 значение в пересечении
В итоге решение будет таким - отсортировать Таблицу 1 по столбцам, чтобы они шли по порядку, задаваемому верхней строкой : #1, #2, #3 ... #10
Тогда Таблица2 будет выглядеть так:
Таблица1(i, 1) Таблица1(1, i) Таблица1(i,i)
Но это после сортировки.
Альтернатива - построить функцию отыскания столбца, в котором #i
по факту мы даже не ищем совпадений ind_1 с ind_1, а берем просто колонку А3 и все последующие значения отображаем вертикально. у меня есть похожий макрос, но он почему-то отрабатывает с ошибкой
извините за плохое объяснение))
по факту мы даже не ищем совпадений ind_1 с ind_1, а берем просто колонку А3 и все последующие значения отображаем вертикально. у меня есть похожий макрос, но он почему-то отрабатывает с ошибкойshady12
берем просто колонку А3 и все последующие значения отображаем вертикально.
На так, что же в первом примере за билиберда в колонке С, с толку сбила. [vba]
Код
Sub www() Dim ps&, i&, j&, sz& With Sheets("Лист2") ps = .Range("A" & Rows.Count).End(xlUp).Row .Range("A2:C" & ps).ClearContents sz = 2 For i = 3 To Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Cells.SpecialCells(xlLastCell).Column .Cells(sz, 1) = Cells(i, 1) .Cells(sz, 2) = Cells(2, j) .Cells(sz, 3) = Cells(i, j) sz = sz + 1 Next Next End With End Sub
берем просто колонку А3 и все последующие значения отображаем вертикально.
На так, что же в первом примере за билиберда в колонке С, с толку сбила. [vba]
Код
Sub www() Dim ps&, i&, j&, sz& With Sheets("Лист2") ps = .Range("A" & Rows.Count).End(xlUp).Row .Range("A2:C" & ps).ClearContents sz = 2 For i = 3 To Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Cells.SpecialCells(xlLastCell).Column .Cells(sz, 1) = Cells(i, 1) .Cells(sz, 2) = Cells(2, j) .Cells(sz, 3) = Cells(i, j) sz = sz + 1 Next Next End With End Sub