Зміст
У навчальному посібнику показані різні способи перемикання рядків на стовпці в Excel: формули, код VBA та спеціальний інструмент.
Транспонування даних в Excel - завдання, знайоме багатьом користувачам. Досить часто ви будуєте складну таблицю тільки для того, щоб зрозуміти, що є сенс її повернути для кращого аналізу або представлення даних у вигляді графіків.
У цій статті ви знайдете кілька способів перетворення рядків у стовпці (або стовпців у рядки), як би ви це не називали, це одне і те ж :) Ці рішення працюють у всіх версіях Excel 2010 до Excel 365, охоплюють безліч можливих сценаріїв і пояснюють найбільш типові помилки.
Перетворення рядків у стовпці в Excel за допомогою Paste Special
Припустимо, що у вас є набір даних, подібний до того, що ви бачите у верхній частині графіка нижче. Назви країн організовані в стовпчики, але список країн занадто довгий, тому нам краще змінити стовпчики на рядки, щоб таблиця вмістилася на екрані:
Для переходу від рядків до стовпців виконується така послідовність дій:
- Виділіть вихідні дані. Щоб швидко виділити всю таблицю, тобто всі комірки з даними в електронній таблиці, натисніть Ctrl + Home, а потім Ctrl + Shift + End .
- Скопіюйте виділені комірки або клацнувши правою кнопкою миші по виділенню і вибравши команду Прийом. з контекстного меню або натиснувши комбінацію клавіш Ctrl + C .
- Виберіть першу комірку діапазону призначення.
Переконайтеся, що ви вибрали клітинку, яка знаходиться за межами діапазону, що містить вихідні дані, щоб області копіювання та вставки не перекривалися. Наприклад, якщо в даний час у вас є 4 стовпці та 10 рядків, перетворена таблиця матиме 10 стовпців та 4 рядки.
- Клацніть правою кнопкою миші по комірці призначення і виберіть Паста спеціальна у контекстному меню, а потім виберіть Транспонувати .
Для отримання додаткової інформації див. розділ Як використовувати спеціальну вставку в Excel.
Примітка: якщо вихідні дані містять формули, обов'язково правильно використовуйте відносні та абсолютні посилання залежно від того, чи потрібно їх коригувати, чи залишати прив'язаними до певних комірок.
Як ви щойно переконалися, спеціальна функція "Вставити" дозволяє виконувати перетворення рядка в стовпець (або стовпця в рядок) буквально за кілька секунд. Цей метод також копіює форматування вихідних даних, що додає ще один аргумент на його користь.
Однак, такий підхід має свої недоліки два недоліки які не дозволяють назвати його ідеальним рішенням для транспонування даних в Excel:
- Він погано підходить для обертання повнофункціональних таблиць Excel. Якщо ви скопіюєте всю таблицю, а потім відкриєте Паста спеціальна ви побачите діалогове вікно Транспонувати У цьому випадку потрібно або скопіювати таблицю без заголовків стовпців, або спочатку перетворити її в діапазон.
- Паста спеціальна > Транспонувати не пов'язує нову таблицю з вихідними даними, тому добре підходить лише для одноразових перетворень. Щоразу, коли вихідні дані змінюються, вам доведеться повторювати процес і обертати таблицю заново. Ніхто не захоче витрачати свій час на перемикання одних і тих же рядків і стовпців знову і знову, чи не так?
Як транспонувати таблицю і прив'язати її до вихідних даних
Розглянемо, як можна переключити рядки на стовпці, використовуючи вже знайомі Паста спеціальна але з'єднати отриману таблицю з вихідним набором даних. Найкраще в цьому підході те, що при зміні даних у вихідній таблиці, перевернута таблиця буде відображати зміни і відповідно оновлюватися.
- Скопіюйте рядки, які потрібно перетворити на стовпці (або стовпці, які потрібно змінити на рядки).
- Виділіть порожню комірку на цьому або іншому аркуші.
- Відкрийте Паста спеціальна як описано в попередньому прикладі та натисніть кнопку Вставити посилання у лівому нижньому кутку:
Ви матимете подібний результат:
Це перетворить ваш стіл на щось трохи страшне, як ви бачите на скріншоті нижче, але не панікуйте, ще 2 кроки, і ви досягнете бажаного результату.
Це трохи довге, але елегантне рішення, чи не так? Єдиний недолік такого підходу полягає в тому, що оригінальне форматування втрачається в процесі, і вам потрібно буде відновити його вручну (я покажу вам швидкий спосіб зробити це далі в цьому підручнику).
Як здійснити транспонування в Excel за допомогою формул
Більш швидким способом динамічного перемикання стовпців на рядки в Excel є використання формули ТРАНСПОЗИЦИЯ або ІНДЕКС/АДРЕСА. Як і в попередньому прикладі, ці формули також зберігають зв'язок з вихідними даними, але працюють дещо інакше.
Заміна рядків на стовпці в Excel за допомогою функції TRANSPOSE
Як випливає з назви, функція ТРАНСПОЗИЦІЯ спеціально розроблена для перенесення даних в Excel:
=TRANSPOSE(array)У цьому прикладі ми перетворимо іншу таблицю, яка містить список штатів США за чисельністю населення:
- Підрахуйте кількість рядків і стовпців у вашій вихідній таблиці і виберіть таку ж кількість порожніх клітинок, але в іншому напрямку.
Наприклад, наша таблиця має 7 стовпців і 6 рядків, включаючи заголовки. Оскільки функція TRANSPOSE змінить стовпці на рядки, ми вибираємо діапазон з 6 стовпців і 7 рядків.
- Виділивши порожні клітинки, введіть цю формулу:
=TRANSPOSE(A1:G6)
- Оскільки наша формула повинна бути застосована до декількох клітинок, натисніть Ctrl + Shift + Enter, щоб зробити її формулою масиву.
Вуаля, стовпчики змінюються на рядки, саме так, як ми і хотіли:
Переваги функції TRANSPOSE:
Основна перевага використання функції ТРАНСПОЗИЦІЯ полягає в тому, що повернута таблиця зберігає зв'язок з вихідною таблицею і при зміні вихідних даних, транспонована таблиця буде змінюватися відповідно.
Слабкі сторони функції ТРАНСПОРТУ:
- Оригінальне форматування таблиці не зберігається в перетвореній таблиці, як ви бачите на скріншоті вище.
- Якщо у вихідній таблиці є порожні клітинки, то в транспонованих клітинках замість них буде 0. Щоб виправити це, використовуйте TRANSPOSE в поєднанні з функцією IF, як пояснюється в цьому прикладі: Як транспонувати без нулів.
- Ви не можете редагувати жодну комірку в оберненій таблиці, оскільки вона дуже сильно залежить від вихідних даних. Якщо ви спробуєте змінити значення якоїсь комірки, ви отримаєте помилку "Ви не можете змінити частину масиву".
Підсумовуючи, якою б гарною і простою у використанні не була функція ТРАНСПОЗИЦІЇ, їй, безумовно, не вистачає гнучкості, і тому вона може бути не найкращим варіантом у багатьох ситуаціях.
Для більш детальної інформації, будь ласка, дивіться функцію ТРАНСПОЗИЦІЯ в Excel з прикладами.
Перетворення рядка в стовпець за допомогою функцій INDIRECT та ADDRESS
У цьому прикладі ми будемо використовувати комбінацію двох функцій, що трохи складно. Тому давайте розгорнемо таблицю поменше, щоб можна було краще зосередитися на формулі.
Припустимо, у Вас є дані в 4 колонках (A - D) і 5 рядках (1 - 5):
Для того, щоб стовпці перетворилися на рядки, виконайте наступне:
- Введіть наведену нижче формулу в крайню ліву комірку діапазону призначення, наприклад, A7, і натисніть клавішу Enter:
=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1))
- Скопіюйте формулу вправо і вниз на необхідну кількість рядків і стовпців, перетягуючи маленький чорний хрестик у правому нижньому куті виділених клітинок:
Все, у вашій новоствореній таблиці всі стовпчики перетворилися на рядки.
Якщо ваші дані починаються з рядка, відмінного від 1, і стовпця, відмінного від A, вам доведеться використовувати дещо складнішу формулу:
=INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1)))
Де A1 - крайня ліва верхня комірка вихідної таблиці. Також, будь ласка, зверніть увагу на використання абсолютних і відносних посилань на комірки.
Однак пересаджені клітини виглядають дуже одноманітно і тьмяно, порівняно з вихідними даними:
Але не засмучуйтесь, цю проблему можна легко виправити. Щоб відновити оригінальне форматування, ось що потрібно зробити:
- Скопіювати вихідну таблицю.
- Виберіть отриману таблицю.
- Клацніть правою кнопкою миші по отриманій таблиці і виберіть Параметри вставки > Форматування .
Переваги Пояснення: Ця формула забезпечує більш гнучкий спосіб перетворення рядків у стовпці в Excel. Вона дозволяє вносити будь-які зміни в транспоновану таблицю, оскільки використовується звичайна формула, а не формула масиву.
Недоліки Бачу тільки одне - втрачено форматування порядкових даних. Хоча, його можна швидко відновити, як показано вище.
Як працює ця формула
Тепер, коли ви знаєте, як використовувати комбінацію НЕПРЯМА / АДРЕСА, ви, можливо, захочете отримати уявлення про те, що насправді робить ця формула.
Як випливає з назви, функція INDIRECT, використовується для непрямого посилання на комірку. Але справжня сила INDIRECT в тому, що вона може перетворити в посилання будь-який рядок, в тому числі рядок, який ви будуєте за допомогою інших функцій і значень інших комірок. І це саме те, що ми збираємося зробити. Якщо ви стежите за цим, то все інше ви зрозумієте з легкістю : )
Як ви пам'ятаєте, у формулі ми використовували ще 3 функції - ADDRESS, COLUMN і ROW.
Функція АДРЕСА отримує адресу комірки за вказаними Вами номерами рядка та стовпця відповідно. Запам'ятайте порядок: перший - рядок, другий - стовпець.
У нашій формулі ми подаємо координати у зворотному порядку, і саме це, власне, і робить фокус! Іншими словами, ця частина формули ADDRESS(COLUMN(A1),ROW(A1)) міняє місцями рядки зі стовпчиками, тобто бере номер стовпчика і змінює його на номер рядка, потім бере номер рядка і перетворює його на номер стовпчика.
Нарешті, функція INDIRECT виводить обернені дані. Зовсім не страшно, чи не так?
Перенесення даних в Excel за допомогою макросу VBA
Для автоматизації перетворення рядків у стовпці в Excel можна скористатися наступним макросом:
Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Виберіть діапазон для транспонування" , Title:= "Транспонувати рядки в стовпці" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Виберіть верхню ліву комірку цільового діапазону" , Title:= "Транспонувати рядки в стовпці" , Type :=8) SourceRange.Copy DestRange. SelectSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False , Transpose:=True Application.CutCopyMode =False End SubЩоб додати макрос на аркуш, дотримуйтесь інструкцій, описаних у розділі Вставка і запуск коду VBA в Excel.
Примітка: Транспонування за допомогою VBA має обмеження в 65536 елементів. Якщо ваш масив перевищує цей ліміт, зайві дані будуть мовчки відкинуті.
Як використовувати макрос для перетворення рядка в стовпець
Вставивши макрос у робочу книгу, виконайте наведені нижче дії, щоб повернути таблицю:
- Відкрийте цільовий робочий аркуш, натисніть Alt + F8 , виберіть пункт TransposeColumnsRows макрос і натисніть Біжи .
Насолоджуйтесь результатом :)
Перемикання стовпців і рядків за допомогою інструменту "Транспонування
Якщо вам потрібно регулярно виконувати перетворення рядків у стовпці, можливо, ви шукаєте більш швидкий і простий спосіб. На щастя, я маю такий спосіб у своєму Excel, як і інші користувачі нашого Ultimate Suite :)
Зараз я покажу вам, як перемикати рядки і стовпці в Excel буквально в пару кліків:
- Виділіть будь-яку комірку в таблиці, перейдіть на вкладку Аблебіти вкладка> Трансформація і натисніть кнопку Транспонувати кнопку.
Якщо Ви бажаєте Тільки вставлені значення або Створення посилань на вихідні дані щоб змусити повернуту таблицю автоматично оновлюватися при кожній зміні, яку ви вносите у вихідну таблицю, виберіть відповідну опцію.
Готово, таблиця перенесена, форматування збережено, ніяких додаткових маніпуляцій не потрібно:
Якщо вам цікаво спробувати цей та 70+ інших професійних інструментів для Excel, запрошую вас завантажити пробну версію нашого Ultimate Suite. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!