Прескочи на основното съдържание

Как да транспонирам всеки 5 или n реда от една колона в множество колони?

Автор: Xiaoyang Последна промяна: 2020-04-23
doc транспониране на всеки 5 реда 1

Да предположим, че имате дълги данни в колона A и сега искате да транспонирате всеки 5 реда от колона A в множество колони, като например транспониране на A1:A5 в C6:G6, A6:A10 в C7:G7 и т.н. показана е следната екранна снимка. Как бихте могли да се справите с тази задача, без да копирате и поставяте многократно в Excel?

Транспонирайте всеки 5 или n реда от една колона в няколко колони с формула

Транспонирайте всеки 5 или n реда от една колона в множество колони с VBA код

Транспонирайте всеки 5 или n реда от една колона в множество колони с Kutools за Excel


В Excel можете да приложите следната формула, за да транспонирате всеки n реда от една колона в множество колони, моля, направете следното:

1. Въведете следната формула в празна клетка, където искате да поставите резултата, C1, например, =ИНДЕКС($A:$A,РЕД(A1)*5-5+КОЛОНА(A1)), вижте екранна снимка:

doc транспониране на всеки 5 реда 2

Забележка: В горната формула, A:A е препратката към колоната, която искате да транспонирате, и A1 е първата клетка от използваната колона, числото 5 показва броя на колоните, които вашите данни ще намерят, можете да ги промените според вашите нужди. И първата клетка от списъка трябва да се намира на първия ред в работния лист.

2. След това плъзнете манипулатора за запълване надясно до пет клетки и продължете да плъзгате манипулатора за запълване надолу до диапазона от клетки, докато се покаже 0, вижте екранната снимка:

doc транспониране на всеки 5 реда 3


Трансформирайте всеки 5 или n реда от една колона в няколко колони:

За да трансформирате всеки 5 или n реда от една колона в множество колони, Kutools за Excel's Обхват на трансформация помощната програма може да ви помогне да решите тази задача възможно най-бързо. Също така може да ви помогне да транспонирате диапазон от данни в един ред или колона. Щракнете, за да изтеглите Kutools за Excel!

doc транспониране на всеки 5 реда 10

Kutools за Excel: с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. Изтеглете и изпробвайте безплатно сега!


Ако не можете да приложите формулата правилно, следният VBA код също може да ви помогне.

1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. Щракнете Поставете > Модулии поставете следния код в Модули Window.

VBA код: Транспонирайте всеки 5 или n реда от една колона в няколко колони:

Public Sub TransposeData()
'updateby Extendoffice
    Dim xLRow As Long
    Dim xNRow As Long
    Dim i As Long
    Dim xUpdate As Boolean
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select data range(only one column):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count > 1) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range only contain one column", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xLRow = xRg.Rows.Count
    For i = 1 To xLRow Step 5
        xRg.Cells(i).Resize(5).Copy
        xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        xNRow = xNRow + 1
    Next
    Application.ScreenUpdating = xUpdate
End Sub

3. След като поставите кода, моля, натиснете F5 за да го стартирате и ще изскочи поле за подкана, за да ви напомни да изберете колоната, която искате да транспонирате, вижте екранната снимка:

doc транспониране на всеки 5 реда 4

4, След това кликнете OKи изберете една клетка, където искате да поставите резултата в друго изскачащо поле, вижте екранната снимка:

doc транспониране на всеки 5 реда 5

5, И натиснете OK, данните в колоната са преобразувани в пет колони, от които се нуждаете, вижте екранна снимка:

doc транспониране на всеки 5 реда 6

Забележка: В горния код можете да промените номера 5 на друг номер, от който се нуждаете.


Ако имате Kutools за Excel, Със своята Обхват на трансформация помощна програма, можете бързо да транспонирате една колона или ред в множество колони и редове.

Kutools за Excel : с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. 

След инсталиране Kutools за Excel, моля, направете следното:

1. Изберете данните в колоната и след това щракнете Kutools > Обхват > Обхват на трансформация, вижте екранна снимка:

2. В Обхват на трансформация изберете диалоговия прозорец Единична колона към диапазон вариант по Тип трансформацияи след това проверете Фиксирана стойност под Редове на запис, след което задайте броя на колоните, към които искате да транспонирате в Фиксирана стойност кутия, вижте екранната снимка:

doc транспониране на всеки 5 реда 8

3, И после щракнете върху Ok бутон, в изскачащото поле, моля, изберете клетка, за да изведете резултата, вижте екранната снимка:

doc транспониране на всеки 5 реда 9

4, След това кликнете OK бутон и данните от вашата колона са транспонирани на всеки 5 реда, както е показано на следната екранна снимка:

doc транспониране на всеки 5 реда 6

Изтеглете и изпробвайте безплатно Kutools за Excel сега!


Kutools за Excel: с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. Изтеглете и изпробвайте безплатно сега!

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (15)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Bonjour,

J'ai, dans mon unique colonne de données, des cellules placées aléatoirement toutes les x lignes et qui contiennent une suite de caractères.

Je voudrait que cette cellule soit dans la première colonne de la ligne transposée, avec, dans les colonnes suivantes, la transposition des lignes qui la suivent, jusqu'à la répétition de ma chaine de caractères, qui signifierait le début de la ligne suivante...

Bref, Heeelllp...

Merci d'avance
Stéphane
This comment was minimized by the moderator on the site
You're a genius. Thanks!
Rated 5 out of 5
This comment was minimized by the moderator on the site
I try doing this just as written, and all I get is Error:508
This comment was minimized by the moderator on the site
Hi, How to do this for Colms to rows. Thank you
This comment was minimized by the moderator on the site
I've rewritten the command to this one:
=INDEX($A:$A,ROW(A1)+((COLUMN(A1)-2)*5))
This executes it inverted.
So:
1
2
3
4
5
6
7
8
9
...
becomes
1, 6
2, 7
3, 8
4, 9
5, ...
This comment was minimized by the moderator on the site
Thanks alot _/\_ Awesome job with =INDEX($A:$A,ROW(B1)*5-5+COLUMN(B1))
worked perfectly
This comment was minimized by the moderator on the site
I tried only the the formula option and it worked great. Till now have been using (Transpose formula with ctrl+shift+enter) but there the disadvantage for we have delete many extra rows. when the rows to be transposed for large in the order of lakhs, then deleting them in excel is either impossible or takes a lot of time.
this approach made the life easier by only copying the required rows... Thanks
This comment was minimized by the moderator on the site
This is fricking AWESOME!!! Thank you SO much. Your example was exactly what I needed and it worked beautifully.
This comment was minimized by the moderator on the site
=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
It was very simple and really useful. Thank you so much
This comment was minimized by the moderator on the site
It was great! Thank you! You saved me hours of manual work!
This comment was minimized by the moderator on the site
Thank you so much! It was really helpful. :)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations