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

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

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

Можливість переносити дані зі стовпців у рядки і навпаки існує в Excel вже досить давно. Але перетворення діапазону комірок в один стовпець було складним завданням. Тепер, нарешті, це змінюється. Microsoft представила нову функцію під назвою TOCOL, яка може виконати перетворення масиву в стовпець в одну мить. Нижче наведено перелік завдань, які ця нова функція може легко вирішити.

    Функція TOCOL в Excel

    Функція TOCOL в Excel перетворює масив або діапазон комірок в один стовпець.

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

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

    Де:

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

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

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

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

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

    Чайові:

    • Для перетворення масиву в один рядок використовується функція СРЗНАЧ.
    • Для зворотного перетворення стовпця в масив використовуйте або функцію WRAPCOLS для обгортання по стовпцях, або функцію WRAPPROWS для обгортання по рядках.
    • Для транспонування масиву з горизонтального у вертикальний або навпаки, тобто заміни рядків на стовпці, використовується функція ТРАНСПОЗИЦИЯ.

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

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

    Базова формула TOCOL для перетворення діапазону в стовпець

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

    =TOCOL(A2:C5)

    Формула вводиться тільки в одну комірку (E2 в цьому прикладі) і автоматично розливається в наступні комірки. З точки зору Excel, результат називається діапазоном розливу.

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

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

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

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

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    Результат поміщається в комірку Е2, з якої він розливається в наступні комірки.

    Як використовувати функцію TOCOL в Excel - приклади формул

    Щоб краще зрозуміти можливості функції TOCOL та які завдання вона може вирішувати, розглянемо деякі приклади формул.

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

    Як ви могли помітити в попередньому прикладі, формула TOCOL за замовчуванням зберігає всі значення з вихідного масиву, включаючи порожні комірки і помилки.

    В отриманому масиві порожні комірки представлені нулями, що може бути досить незрозуміло, особливо якщо у вихідному масиві є 0 значень. Рішення полягає у наступному пропуск заготовок Для цього ви встановлюєте 2-й аргумент рівним 1:

    =TOCOL(A2:C5, 1)

    До ігнорувати помилки встановіть 2-й аргумент рівним 2:

    =TOCOL(A2:C5, 2)

    Виключити і те, і інше, пропуски та помилки використовуйте 3 для ігнорувати аргумент:

    =TOCOL(A2:C5, 3)

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

    За замовчуванням scan_by_column (FALSE або опущений), функція TOCOL сканує масив по горизонталі по рядках. Для обробки значень по стовпцях цей аргумент встановлюється в TRUE або 1. Наприклад, для обробки значень по стовпцях:

    =TOCOL(A2:C5, ,TRUE)

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

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

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

    Якщо припустити, що перший діапазон - A2:C4, а другий діапазон - A8:C9, то формула набуває такого вигляду:

    =TOCOL(VSTACK(A2:C4, A8:C9))

    Ця формула демонструє поведінку за замовчуванням - зчитує об'єднані масиви горизонтально зліва направо, як показано в колонці E на зображенні нижче.

    Для зчитування значень по вертикалі зверху вниз встановлюється 3-й аргумент TOCOL в значення TRUE:

    =TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)

    Зверніть увагу, що в даному випадку формула спочатку повертає значення зі стовпця A обох масивів, потім зі стовпця B і т.д. Причина в тому, що TOCOL сканує єдиний стековий масив, а не вихідні окремі діапазони.

    Якщо ваша бізнес-логіка вимагає складання вихідних діапазонів по горизонталі, а не по вертикалі, то використовуйте функцію HSTACK замість VSTACK.

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

    =TOCOL(HSTACK(A2:C4, A8:C10))

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

    =TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)

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

    Функція УНИКВ Excel легко знаходить унікальні значення в одному стовпці або рядку, а також повертає унікальні рядки, але не може витягти унікальні значення з багатостовпчикового масиву. Вирішенням є використання її разом з функцією ТОКОЛ.

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

    =UNIQUE(TOCOL(A2:C7))

    Додатково можна обернути вищенаведену формулу у функцію SORT, щоб упорядкувати масив, що повертається, в алфавітному порядку:

    =SORT(UNIQUE(TOCOL(A2:C7)))

    Як перетворити діапазон у стовпець в Excel 365 - 2010

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

    Зчитування діапазону по рядках:

    INDEX( діапазон , QUOTIENT(ROW(A1)-1, COLUMNS( діапазон ))+1, MOD(ROW(A1)-1, COLUMNS( діапазон ))+1)

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

    INDEX( діапазон , MOD(ROW(A1)-1, ROWS( діапазон )+1, QUOTIENT(ROW(A1)-1, ROWS( діапазон ))+1)

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

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

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

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

    =TOCOL(A2:C5)

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

    =INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)

    Цю формулу можна порівняти з функцією TOCOL з 3-м аргументом, що має значення ІСТИНА:

    =TOCOL(A2:C5, ,TRUE)

    На відміну від TOCOL, альтернативні формули слід вводити в кожну комірку, де ви хочете, щоб з'явилися результати. У нашому випадку формули потрапляють в комірки E2 (по рядку) і G2 (по стовпцю), а потім копіюються вниз до рядка 13.

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

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

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

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

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

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

    Ідея полягає в тому, щоб за допомогою функції ІНДЕКС повернути значення певної комірки на основі її відносних номерів рядка і стовпця в діапазоні.

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

    QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

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

    За чисельник використовується функція ROW(A1)-1, яка повертає порядковий номер від 0 в комірці E2 (перша комірка, в яку вводиться формула) до 11 в комірці E13 (остання комірка, в яку вводиться формула).

    На сьогоднішній день, на жаль, це не так. знаменник принесений COLUMNS($A$2:$C$5)) є константою і дорівнює кількості стовпців у вашому діапазоні (у нашому випадку - 3).

    Тепер, якщо ви перевірите результат QUOTE для перших 3 комірок (E2:E4), то побачите, що він дорівнює 0 (тому що ціла частина ділення дорівнює нулю). Додавання 1 дає номер рядка 1.

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

    Іншими словами, ця частина формули створює повторювану послідовність чисел, таку як 1,1,1,1,2,2,2,3,3,3,3,4,4,4,... Кожне число повторюється стільки разів, скільки стовпців у вашому діапазоні.

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

    MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    Оскільки в нашому діапазоні 3 стовпчики (A2:C5), то послідовність повинна бути 1,2,3,1,2,3,...

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

    В E2 MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    стає

    MOD(1-1, 3)+1)

    і повертає 1.

    В E3 MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    стає

    MOD(2-1, 3)+1)

    і повертає 2.

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

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

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

    І так далі.

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

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

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

    TOCOL не підтримується у вашому Excel

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

    Масив занадто великий

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

    Не вистачає порожніх клітинок

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

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

    Практичний посібник

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

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