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

  • Поделись Этим
Michael Brown

Быстрый способ превратить диапазон ячеек в одну строку с помощью функции TOROW функция.

В Microsoft Excel 365 появилось несколько новых функций для выполнения различных манипуляций с массивами. С помощью TOROW можно быстро выполнять преобразования из диапазона в ряд. Вот список задач, которые может решить эта новая функция:

    Функция ТОРОУ в Excel

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

    Функция принимает в общей сложности три аргумента, из которых обязательным является только первый.

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

    Где:

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

    Игнорировать (необязательный) - определяет, игнорировать ли пробелы и/или ошибки. Может принимать одно из этих значений:

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

    Scan_by_column (необязательно) - определяет способ сканирования массива:

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

    Советы:

    • Чтобы преобразовать массив в один столбец, используйте функцию TOCOL.
    • Чтобы выполнить обратное преобразование строки в массив, используйте либо функцию WRAPCOLS для обертывания в столбцы, либо функцию WRAPROWS для обертывания массива в строки.
    • Чтобы превратить строки в столбцы, используйте функцию TRANSPOSE.

    наличие тороса

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

    Основная формула TOROW в Excel

    Чтобы выполнить простое преобразование диапазона в строку, используйте формулу TOROW в ее базовой форме. Для этого вам нужно определить только первый аргумент ( массив ).

    Например, чтобы превратить двумерный массив, состоящий из 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}

    Результат попадает в ячейку A10, из которой он переливается в соседнюю ячейку справа.

    Преобразовать диапазон в строку, игнорируя пробелы и ошибки

    По умолчанию функция TOROW сохраняет все значения из исходного массива, включая пустые ячейки и ошибки. В выводе на месте пустых ячеек появляются нулевые значения, что может сбить с толку.

    На исключить заготовки , установите игнорировать аргумент к 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)

    Укладывайте массивы вертикально и преобразуйте по строкам

    Чтобы добавить каждый последующий массив к нижней части предыдущего массива и прочитать объединенный массив по горизонтали, формула в E12 имеет вид:

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

    Укладывайте массивы вертикально и преобразуйте по столбцам

    Чтобы добавить каждый последующий массив в нижнюю часть предыдущего и просканировать объединенный массив по вертикали, формула выглядит следующим образом:

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

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

    Извлечение уникальных значений из диапазона в строку

    Начиная с Microsoft Excel 2016, у нас есть замечательная функция UNIQUE, которая позволяет легко получать уникальные значения из одного столбца или строки. Однако она не может работать с массивами из нескольких столбцов. Чтобы преодолеть это ограничение, используйте функции UNIQUE и TOROW вместе.

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

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

    Поскольку TOROW возвращает одномерный горизонтальный массив, мы устанавливаем 2-е ( by_col ) аргумента UNIQUE в TRUE для сравнения столбцов друг с другом.

    Если вы хотите, чтобы результаты были расположены в алфавитном порядке, оберните приведенную выше формулу в функцию SORT:

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

    Как и в случае с UNIQUE, параметр by_col аргумент SORT также устанавливается в TRUE.

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

    В версиях Excel, где функция TOROW недоступна, вы можете преобразовать диапазон в одну строку с помощью комбинации нескольких различных функций, которые работают в старых версиях. Эти решения более сложные, но они работают.

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

    ИНДЕКС( ассортимент , QUOTIENT(COLUMN (A1)-1, COLUMNS( ассортимент ))+1, MOD(COLUMN(A1)-1, COLUMNS( ассортимент ))+1)

    Для сканирования диапазона по вертикали общая формула такова:

    ИНДЕКС( ассортимент , MOD(COLUMN(A1)-1, COLUMNS( ассортимент ))+1, QUOTIENT(COLUMN (A1)-1, COLUMNS( ассортимент ))+1)

    Для нашего набора данных в A3:C5 формулы имеют следующий вид:

    Чтобы просканировать диапазон по строкам:

    =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)

    Эта формула является альтернативой функции TOROW с 3-м аргументом, установленным на FALSE или опущенным:

    =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)

    Эта формула эквивалентна функции TOROW с 3-м аргументом, установленным в TRUE:

    =TOROW(A3:C5, ,TRUE)

    Обратите внимание, что в отличие от функции динамического массива TOROW, эти традиционные формулы должны быть введены в каждую ячейку, где вы хотите получить результат. В нашем случае первая формула (по строке) попадает в E3 и копируется через M3. Вторая формула (по столбцу) попадает в E8 и перетаскивается через M8.

    Чтобы формулы копировались правильно, мы фиксируем диапазон, используя абсолютные ссылки ($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)

    В основе формулы лежит функция INDEX, с помощью которой мы получаем значение ячейки на основе ее относительного положения в диапазоне.

    Сайт номер строки рассчитывается по этой формуле:

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

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

    QUOTIENT возвращает целочисленную часть деления.

    Для числитель , мы используем COLUMN(A1)-1, который возвращает порядковый номер от 0 в первой ячейке, где введена формула, до n (общее количество значений в диапазоне минус 1) в последней ячейке, в которую была введена формула. В данном примере в E2 у нас 0, а в M3 - 8.

    Для знаменатель Мы используем COLUMNS($A$3:$C$5)). Это возвращает постоянное число, равное количеству столбцов в вашем диапазоне (3 в нашем случае).

    В результате функция QUOTIENT возвращает 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.

    И так далее.

    Вторая формула, которая сканирует диапазон по столбцам, работает аналогичным образом. Разница в том, что мы используем MOD для вычисления номера строки и QUOTIENT для вычисления номера столбца.

    Функция TOROW не работает

    Если функция TOROW приводит к ошибке, скорее всего, это одна из этих причин:

    #NAME? ошибка

    Для большинства функций Excel ошибка #NAME? является явным признаком того, что имя функции написано неправильно. В случае с TOROW это также может означать, что функция недоступна в вашем Excel. Если ваша версия Excel отлична от 365, попробуйте использовать альтернативу TOROW.

    #NUM ошибка

    Ошибка #NUM указывает на то, что возвращаемый массив не помещается в строку. Чаще всего это происходит, когда вы ссылаетесь на целые столбцы и/или строки, а не на меньший диапазон.

    ошибка #SPILL

    В большинстве случаев ошибка #SPILL говорит о том, что в строке, где вы ввели формулу, недостаточно пустых ячеек, чтобы перелить результаты в них. Если соседние ячейки визуально пустые, убедитесь, что в них нет пробелов или других непечатных символов. Для получения дополнительной информации смотрите раздел Что означает ошибка #SPILL в Excel.

    Вот как вы используете функцию TOROW в Excel для преобразования двумерного массива или диапазона в одну строку. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

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

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.