Функція Excel TOROW для перетворення діапазону або масиву в рядок

  • Поділитися Цим
Michael Brown

Швидкий спосіб перетворити діапазон комірок в один ряд за допомогою функції TOROW функцію.

У Microsoft Excel 365 з'явилося кілька нових функцій для виконання різних маніпуляцій з масивами. За допомогою TOROW можна швидко виконувати перетворення діапазону в рядок. Ось перелік завдань, які може виконати ця нова функція:

    Функція Excel TOROW

    Функція СРЗНАЧ в Excel використовується для перетворення масиву або діапазону комірок в один рядок.

    Функція отримує всього три аргументи, з яких тільки перший є обов'язковим.

    TOROW(array, [ignore], [scan_by_column])

    Де:

    Масив (обов'язково) - масив або діапазон для перетворення в один рядок.

    Ігнорувати (необов'язково) - визначає, чи ігнорувати пропуски та/або помилки. Може приймати одне з цих значень:

    • 0 або пропущено (за замовчуванням) - зберегти всі значення
    • 1 - ігнорувати пропуски
    • 2 - ігнорувати помилки
    • 3 - ігнорувати пропуски та помилки

    Scan_by_columns (необов'язково) - визначає спосіб сканування масиву:

    • FALSE або пропущено (за замовчуванням) - сканувати масив по горизонталі по рядках.
    • TRUE - сканувати масив по вертикалі по стовпчику.

    Чайові:

    • Для перетворення масиву в один стовпець використовується функція TOCOL.
    • Для виконання зворотного перетворення рядка в масив використовуйте функцію WRAPCOLS для обгортання в стовпці або функцію WRAPPROWS для обгортання масиву в рядки.
    • Для перетворення рядків у стовпці використовуйте функцію TRANSPOSE.

    Доступність TOROW

    TOROW - це нова функція, яка підтримується тільки в Excel для Microsoft 365 (для Windows і Mac) та Excel для Інтернету.

    Базова формула TOROW в Excel

    Щоб зробити просте перетворення діапазону в рядок, використовуйте формулу ТОРУ в її базовому вигляді. Для цього потрібно визначити тільки перший аргумент ( масив ).

    Наприклад, щоб перетворити двовимірний масив, що складається з 3 стовпців і 3 рядків, в один рядок, використовується формула:

    =TOROW(A3:C6)

    Ви вводите формулу лише в одну комірку (в нашому випадку A10), і вона автоматично розливається в стільки комірок, скільки потрібно, щоб вмістити всі результати. В термінах Excel діапазон виведення, оточений тонкою синьою рамкою, називається діапазоном розливу.

    Як працює ця формула:

    Спочатку заданий діапазон комірок перетворюється у двовимірний масив. Зверніть увагу на стовпчики, розділені комами, та рядки, розділені крапкою з комою:

    {"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}

    Потім функція TOROW зчитує масив зліва направо і перетворює його в одновимірний горизонтальний масив:

    {"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}

    Результат потрапляє в комірку А10, з якої переливається в сусідню комірку праворуч.

    Перетворення діапазону в рядок без урахування пропусків і помилок

    За замовчуванням функція СРЗНАЧ зберігає всі значення з вихідного масиву, включаючи порожні комірки і помилки. На виході на місці порожніх комірок з'являються нульові значення, що може бути досить заплутано.

    До виключити порожні місця встановіть значення ігнорувати аргумент до 1:

    =TOROW(A3:C5, 1)

    До ігнорувати помилки встановіть значення ігнорувати аргумент до 2:

    =TOROW(A3:C5, 2)

    Пропустити обидва, пропуски та помилки використовуйте 3 для ігнорувати аргумент:

    =TOROW(A3:C5, 3)

    На зображенні нижче показані всі три сценарії в дії:

    Читання масиву по горизонталі або вертикалі

    При поведінці за замовчуванням функція TOROW обробляє масив по горизонталі зліва направо. Для сканування значень по стовпчику зверху вниз задається 3-й аргумент ( scan_by_column ) до TRUE або 1.

    Наприклад, для зчитування вихідного діапазону по рядках, формула в E3 має вигляд:

    =TOROW(A3:C5)

    Для сканування діапазону по стовпчику використовується формула в E8:

    =TOROW(A3:C5, ,TRUE)

    В обох випадках отримані масиви мають однаковий розмір, але значення розташовані в різному порядку.

    Об'єднання декількох діапазонів в один рядок

    Щоб об'єднати кілька несуміжних діапазонів в один рядок, потрібно спочатку скласти їх по горизонталі або вертикалі в єдиний масив за допомогою функцій HSTACK або VSTACK відповідно, а потім за допомогою функції TOROW перетворити об'єднаний масив в рядок.

    Залежно від вашої бізнес-логіки, завдання буде виконувати одна з наступних формул.

    Складати масиви по горизонталі та конвертувати по рядках

    З першим діапазоном в A3:C4 і другим діапазоном в A8:C9, наведена нижче формула складе два діапазони горизонтально в один масив, а потім перетворить його в рядок, що зчитує значення зліва направо. Результат знаходиться в E3 на зображенні нижче.

    =TOROW(HSTACK(A3:C4, A8:C9))

    Складати масиви по горизонталі та конвертувати по стовпцях

    Щоб прочитати укладений масив вертикально зверху вниз, потрібно встановити 3-й аргумент TOROW в TRUE, як показано в E5 на зображенні нижче:

    =TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)

    Складати масиви по вертикалі та конвертувати по рядках

    Для додавання кожного наступного масиву до нижньої частини попереднього масиву і зчитування об'єднаного масиву по горизонталі використовується формула в Е12:

    =TOROW(VSTACK(A3:C4, A8:C9))

    Складати масиви по вертикалі та конвертувати по стовпцях

    Для додавання кожного наступного масиву в нижню частину попереднього і сканування об'єднаного масиву по вертикалі використовується формула:

    =TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)

    Для кращого розуміння логіки зверніть увагу на різний порядок значень в отриманих масивах:

    Витяг унікальних значень з діапазону в рядок

    Починаючи з Microsoft Excel 2016, у нас є чудова функція УНИКВ, яка дозволяє легко отримати унікальні значення з одного стовпця або рядка. Однак вона не може обробляти масиви з декількома стовпцями. Щоб подолати це обмеження, використовуйте функції УНИКВ і ТОРОВКА разом.

    Наприклад, для того, щоб витягти всі різні (відмінні) значення з діапазону A2:C7 і розмістити результати в одному рядку, використовується формула:

    =UNIQUE(TOROW(A2:C7), TRUE)

    Оскільки функція TOROW повертає одновимірний горизонтальний масив, то встановлюємо 2-й ( by_col ) аргумент UNIQUE на TRUE для порівняння стовпців між собою.

    Якщо ви хочете, щоб результати були впорядковані в алфавітному порядку, оберніть наведену вище формулу у функцію СОРТУВАННЯ:

    =SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )

    Як і у випадку з UNIQUE, програма by_col аргумент SORT також має значення TRUE.

    TOROW альтернатива для Excel 365 - 2010

    У версіях Excel, де функція TOROW недоступна, ви можете перетворити діапазон в один рядок за допомогою комбінації декількох різних функцій, які працюють у старих версіях. Ці рішення є більш складними, але вони працюють.

    Для сканування діапазону по горизонталі загальна формула має вигляд:

    INDEX( діапазон , QUOTIENT(СТОВПЧИК (A1)-1, СТОВПЧИКИ( діапазон )+1, MOD(COLUMN(A1)-1, COLUMNS( діапазон ))+1)

    Для сканування діапазону по вертикалі загальна формула має вигляд:

    INDEX( діапазон , MOD(COLUMN(A1)-1, COLUMNS( діапазон )+1, ДОБУТОК(СТОВПЧИК (A1)-1, СТОВПЧИКИ( діапазон ))+1)

    Для нашого прикладу набору даних у форматі А3:С5 формули мають такий вигляд:

    Для сканування діапазону по рядках:

    =INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    Ця формула є альтернативою функції ТОРОВ з 3-м аргументом, встановленим у значення ЛОЖЬ або опущеним:

    =TOROW(A3:C5)

    Для сканування діапазону по стовпчику:

    =INDEX($A$3:$C$5, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    Ця формула еквівалентна функції ТОРОВ з 3-м аргументом, що має значення ІСТИНА:

    =TOROW(A3:C5, ,TRUE)

    Зверніть увагу, що на відміну від функції динамічного масиву СРЗНАЧ, ці традиційні формули слід вводити в кожну комірку, де ви хочете, щоб з'явилися результати. У нашому випадку перша формула (по рядку) потрапляє в Е3 і копіюється через М3. Друга формула (по стовпцю) потрапляє в Е8 і перетягується через М8.

    Щоб формули коректно копіювалися, ми фіксуємо діапазон за допомогою абсолютних посилань ($A$3:$C$5). Також підійде іменований діапазон.

    Якщо ви скопіювали формули в більше комірок, ніж потрібно, в "зайвих" комірках з'явиться помилка #REF! Щоб виправити її, оберніть формулу в функцію IFERROR таким чином:

    =IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1), "")

    Як працюють ці формули

    Нижче наведено детальну розбивку першої формули, яка впорядковує значення за рядками:

    =INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)

    В основі формули лежить функція ІНДЕКС для отримання значення комірки на основі її відносного положення в діапазоні.

    На сьогоднішній день, на жаль, це не так. номер рядка розраховується за такою формулою:

    QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1

    Ідея полягає в тому, щоб створити повторювану послідовність чисел, таку як 1,1,1,1,2,2,2,2,3,3,3, ... де кожне число повторюється стільки разів, скільки стовпців у вихідному діапазоні. І ось як ми це робимо:

    QUOTIENT повертає цілу частину від ділення.

    За чисельник використовуємо функцію COLUMN(A1)-1, яка повертає порядковий номер від 0 у першій комірці, де введена формула до n (загальна кількість значень у діапазоні мінус 1) в останній комірці, в яку введена формула. У цьому прикладі ми маємо 0 в E2 і 8 в M3.

    За знаменник ми використовуємо COLUMNS($A$3:$C$5)), яка повертає константне число, що дорівнює кількості стовпців у вашому діапазоні (3 в нашому випадку).

    В результаті функція СУММЕСЛИ повертає 0 в перші 3 комірки (E3:G3), до яких ми додаємо 1, тому номер рядка дорівнює 1.

    Для наступних 3 комірок (H3:J3) QUOTIENT повертає 1, а +1 дає номер рядка 2 і т.д.

    Для розрахунку номер стовпчика Ви будуєте відповідну числову послідовність за допомогою функції MOD:

    MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1

    Оскільки в нашому асортименті 3 колонки, то послідовність повинна виглядати так: 1,2,3,1,2,3,...

    Функція MOD повертає залишок після ділення.

    В E3 MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+

    стає

    MOD(1-1, 3)+1)

    і повертає 1.

    В F3 MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+

    стає

    MOD(2-1, 3)+1)

    і повертає 2.

    Після встановлення номерів рядка і стовпця INDEX легко знаходить значення на перетині цього рядка і стовпця.

    В E3 функція INDEX($A$3:$C$5, 1, 1) повертає значення з 1-го рядка і 1-го стовпця діапазону, на який посилаються, тобто з комірки A3.

    У F3 функція INDEX($A$3:$C$5, 1, 2) повертає значення з 1-го рядка і 2-го стовпця, тобто з комірки B3.

    І так далі.

    Друга формула, яка сканує діапазон по стовпчику, працює аналогічно. Різниця в тому, що для обчислення номера рядка ми використовуємо МОДА, а для обчислення номера стовпчика - КІЛЬКІСТЬ.

    Не працює функція TOROW

    Якщо функція TOROW призводить до помилки, це, швидше за все, одна з цих причин:

    #NAME? помилка

    Для більшості функцій Excel помилка #NAME? чітко вказує на те, що ім'я функції написано неправильно. У випадку з TOROW це також може означати, що функція недоступна у вашому Excel. Якщо ваша версія Excel відрізняється від 365, спробуйте використати альтернативу TOROW.

    Помилка #NUM

    Помилка #NUM вказує на те, що повернутий масив не вміщується в рядку. Найчастіше це відбувається, коли ви посилаєтесь на цілі стовпці та/або рядки замість меншого діапазону.

    помилка #SPILL

    У більшості випадків помилка #SPILL свідчить про те, що в рядку, де введена формула, недостатньо порожніх клітинок для рознесення результатів. Якщо сусідні клітинки візуально порожні, переконайтеся, що в них немає пробілів або інших недрукованих символів. Для отримання додаткової інформації див. статтю Що означає помилка #SPILL в Excel.

    Ось так можна використовувати функцію СРЗНАЧ в Excel для перетворення двовимірного масиву або діапазону в один рядок. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Практичний посібник для завантаження

    Функція TOROW Excel - приклади формул (файл .xlsx)

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.