Функция Excel CHOOSECOLS для получения столбцов из массива или диапазона
В этом руководстве вы познакомитесь с новой функцией динамического массива Excel 365 под названием CHOOSECOLS и покажете, как вы можете использовать ее для извлечения любых определенных столбцов из массива.
Представьте, что вы работаете с набором данных из сотен или тысяч столбцов. Очевидно, что некоторые столбцы более важны, чем другие, и, естественно, вы можете сначала прочитать их данные. Excel 365 предлагает идеальную функцию для работы, которая может мгновенно извлекать определенные данные из массива, чтобы вы могли сосредоточиться на наиболее важной информации.
Excel функция ВЫБОР
Функция CHOOSECOLS в Excel предназначена для возврата указанных столбцов из массива или диапазона.
Синтаксис включает следующие аргументы:
CHOOSECOLS(массив, col_num1, [col_num2]…)
Где:
Массив (обязательно) — исходный массив или диапазон.
Col_num1 (обязательно) — целое число, определяющее первый возвращаемый столбец.
Col_num2, … (необязательно) — порядковые номера дополнительных столбцов для возврата.
А вот так может выглядеть функция ВЫБОР РАСЧЕТОВ в вашем Excel:
Наличие функции ВЫБОР
В настоящее время функция CHOOSECOLS доступна в Excel для Microsoft 365 (Windows и Mac) и Excel для Интернета.
Кончик. Чтобы извлечь несколько строк из диапазона или массива, может пригодиться функция CHOOSEROWS.
Как использовать функцию ВЫБОР РАСЦЕН в Excel
CHOOSECOLS — это функция динамического массива, поэтому она изначально обрабатывает массивы. Формула должна быть введена только в одну ячейку — верхнюю левую ячейку целевого диапазона — и она автоматически разливается на столько столбцов, сколько указано в ее аргументах, и столько строк, сколько есть в исходном массиве. В результате получается единый динамический массив, который называется диапазоном разлива.
Чтобы создать формулу CHOOSECOLS в Excel, вам нужно сделать следующее:
- Для массива укажите диапазон ячеек или массив значений.
- Для col_num укажите положительное или отрицательное целое число, указывающее, какой столбец следует вернуть. Положительное число подтягивает соответствующий столбец из левой части массива, отрицательное число — из правой части массива. Чтобы получить несколько столбцов, можно определить их номера в отдельных аргументах или в одном аргументе в виде константы массива.
Например, чтобы получить столбцы 2, 3 и 4 из диапазона A4:E19, используйте следующую формулу:
=ВЫБОРЦВЕТ(A4:E19, 2, 3, 4)
Кроме того, вы можете использовать константу горизонтального массива, например {2,3,4}, или константу вертикального массива, например {2;3;4}, чтобы указать номера столбцов:
=ВЫБОРЦВЕТ(A4:E19, {2,3,4})
=ВЫБОРЦВЕТ(A4:E19, {2;3;4})
Все три приведенные выше формулы дадут один и тот же результат:
В некоторых ситуациях может оказаться более удобным ввести номера столбцов в некоторые ячейки, а затем ссылаться на эти ячейки по отдельности или предоставить ссылку на один диапазон. Например:
=ВЫБОРЦВЕТ(A4:E19, G4, H4, I4)
=ВЫБОРЦВЕТ(A4:E19, G4:I4)
Этот подход дает вам больше гибкости — для извлечения любых других столбцов вы просто вводите разные числа в предопределенные ячейки, не изменяя саму формулу.
Теперь, когда вы знаете основы, давайте углубимся в дополнительные возможности и рассмотрим несколько более сложные формулы CHOOSECOLS для обработки конкретных сценариев.
Получить последние столбцы из диапазона
Чтобы вернуть один или несколько столбцов из конца диапазона, укажите отрицательные числа в качестве аргументов col_num. Это заставит функцию начать подсчет столбцов с правой стороны массива.
Например, чтобы получить последний столбец из диапазона A4:D13, используйте следующую формулу:
=ВЫБОРЦВЕТ(A4:E19, -1)
Чтобы извлечь последние два столбца, используйте этот:
=ВЫБОРЦВЕТ(A4:E19, -2, -1)
Чтобы вернуть последние 2 столбца в обратном порядке, измените порядок аргументов col_num следующим образом:
=ВЫБОРЦВЕТ(A4:E19, -1, -2)
Получить каждый второй столбец в Excel
Чтобы извлечь каждый второй столбец из заданного диапазона, вы можете использовать CHOOSECOLS вместе с несколькими другими функциями. Ниже приведены две версии формулы для извлечения нечетных и четных столбцов.
Чтобы получить нечетные столбцы (например, 1, 3, 5 и т. д.), используйте следующую формулу:
=ВЫБОРЦВЕТ(A4:E19, ПОСЛЕДОВАТЕЛЬНОСТЬ(ОКРУГЛВВЕРХ(СТОЛБЦЫ(A4:E19)/2, 0), 1, 1, 2))
Чтобы вернуть четные столбцы (например, 2, 4, 6 и т. д.), формула принимает следующий вид:
=ВЫБОРСЕКТОРОВ(A4:E19, ПОСЛЕДОВАТЕЛЬНОСТЬ(ОКРУГЛЕНИЕВНИЗ(СТОЛБЦЫ(A4:E19)/2, 0), 1, 2, 2))
На скриншоте ниже показана первая формула в действии:
Как работает эта формула:
Краткое пояснение: функция ВЫБОРЦВЕТ возвращает каждый второй столбец на основе массива последовательных нечетных или четных чисел, созданного функцией ПОСЛЕДОВАТЕЛЬНОСТЬ.
Подробная расшифровка формулы:
Первый шаг — вычислить, сколько столбцов нужно вернуть. Для этого воспользуемся одной из следующих формул:
ОКРУГЛВВЕРХ(СТОЛБЦЫ(A4:E19)/2, 0)
или
ОКРУГЛВНИЗ(СТОЛБЦЫ(A4:E19)/2, 0)
COLUMNS подсчитывает общее количество столбцов в исходном диапазоне. Вы делите это число на 2, а затем, в зависимости от того, извлекаете ли вы нечетные или четные столбцы, округляете частное вверх или вниз до целого числа с помощью ОКРУГЛВВЕРХ или ОКРУГЛВНИЗ. Округление необходимо, если исходный диапазон содержит нечетное количество столбцов, что дает остаток при делении на 2.
Наш исходный диапазон имеет 5 столбцов. Таким образом, для нечетных столбцов ОКРУГЛВВЕРХ(5/2, 0) возвращает 3, а для четных столбцов ОКРУГЛВНИЗ(5/2, 0) возвращает 2.
Возвращенное число передается в первый аргумент (строки) функции ПОСЛЕДОВАТЕЛЬНОСТЬ.
Для нечетных столбцов получаем:
ПОСЛЕДОВАТЕЛЬНОСТЬ(3, 1, 1, 2)
Эта формула ПОСЛЕДОВАТЕЛЬНОСТЬ создает массив чисел, состоящий из 3 строк и 1 столбца, начиная с 1 и увеличивая на 2, что равно {1;3;5}.
Для четных столбцов имеем:
ПОСЛЕДОВАТЕЛЬНОСТЬ(2, 1, 2, 2)
В этом случае ПОСЛЕДОВАТЕЛЬНОСТЬ создает массив чисел, состоящий из 2 строк и 1 столбца, начиная с 2 и увеличивая на 2, что равно {2;4}.
Приведенный выше массив переходит к аргументу col_num1 команды CHOOSECOLS, и вы получаете желаемый результат.
Отразить массив по горизонтали в Excel
Чтобы изменить порядок столбцов в массиве слева направо, вы можете использовать функции CHOOSECOLS, SEQUENCE и COLUMNS вместе следующим образом:
=ВЫБОРСЕКТОРОВ(A4:D19, ПОСЛЕДОВАТЕЛЬНОСТЬ(СТОЛБЦЫ(A4:D19)) *-1)
В результате исходный диапазон переворачивается по горизонтали, как показано на изображении ниже:
Как работает эта формула:
Здесь мы используем функцию ПОСЛЕДОВАТЕЛЬНОСТЬ для создания массива, содержащего столько порядковых номеров, сколько столбцов в исходном массиве. Для этого мы вкладываем COLUMNS(A4:D13) в аргумент rows:
ПОСЛЕДОВАТЕЛЬНОСТЬ(СТОЛБЦЫ(A4:D19))
Другие аргументы (столбцы, начало, шаг) опущены, поэтому по умолчанию они равны 1. В результате ПОСЛЕДОВАТЕЛЬНОСТЬ создает массив последовательных чисел, таких как 1, 2, 3, …, n, где n — индекс последнего столбец в массиве. Чтобы функция CHOOSECOLS считала столбцы справа налево, мы умножаем каждый элемент сгенерированной последовательности на -1. В результате мы получаем массив отрицательных чисел, таких как {-1;-2;-3}, которые переходят к аргументу col_num функции CHOOSECOLS, указывая ей вернуть соответствующие столбцы с правой стороны массива:
ВЫБОРЦВЕТ(A4:D19, {-1;-2;-3;-4})
Извлечь столбцы на основе строки с числами
В ситуации, когда номера индексов целевых столбцов представлены в виде текстовой строки, вы можете использовать функцию TEXTSPLIT, чтобы разбить строку по заданному разделителю, а затем передать полученный массив чисел в CHOOSECOLS.
Допустим, номера столбцов перечислены в ячейке H3, разделенные запятой и пробелом. Чтобы получить интересующие столбцы, используйте эту формулу:
=ВЫБРАТЬСЕКЦИИ(A4:E19, РАЗДЕЛЕНИЕ ТЕКСТА(H3, “, “) *1)
Как работает эта формула:
Во-первых, вы разделяете строку заданным разделителем (в нашем случае это запятая и пробел):
РАЗДЕЛЕНИЕ ТЕКСТА(H3,” “”)
Промежуточным результатом является массив текстовых значений, таких как {“1″,”4″,”5”}. Чтобы преобразовать текст в числа, умножьте элементы массива на 1 или выполните любую другую математическую операцию, которая не изменяет исходные значения.
ТЕКСТРАЗДЕЛИТЬ(H3,” “”) *1
Это создает массив числовых значений {1,4,5}, которые может обработать функция CHOOSECOLS, и вы получите результат, который ищете:
ВЫБОРЦВЕТ(A4:E19, {1,4,5})
Извлечение столбцов из нескольких диапазонов
Чтобы получить определенные столбцы из нескольких несмежных диапазонов, вы сначала объединяете все диапазоны в один с помощью функции VSTACK, а затем обрабатываете объединенный диапазон с помощью CHOOSECOLS.
Например, чтобы вернуть столбцы 1 и 3 из диапазонов A4:D8, A12:D15 и A19:D21, используйте следующую формулу:
=ВЫБОРСЕКТОРОВ(ВССТЕК(A4:D8, A12:D15, A19:D21), 1, 3)
Функция CHOOSECOLS не работает
Если формула CHOOSECOLS выдает ошибку, она, скорее всего, будет одной из следующих.
#ЦЕНИТЬ! ошибка
Происходит, если абсолютное значение любого аргумента col_num равно нулю или превышает общее количество столбцов в указанном массиве.
#НАЗВАНИЕ? ошибка
Происходит, если имя функции написано с ошибкой или функция недоступна в вашей версии Excel. В настоящее время CHOOSECOLS поддерживается только в Excel 365 и Excel для Интернета.
#ИГРА! ошибка
Происходит, когда что-то мешает формуле распространить результаты в соседние ячейки. Чтобы это исправить, просто очистите мешающие ячейки. Дополнительные сведения см. в разделе Как исправить ошибку #SPILL! ошибка в экселе.
Вот как можно использовать функцию CHOOSECOLS в Excel для возврата определенных столбцов из диапазона или массива. Спасибо за внимание и до встречи в нашем блоге на следующей неделе!
Практическая рабочая тетрадь для скачивания
Формула Excel CHOOSECOLS – примеры (файл .xlsx)