Функция BYROW в Excel

Функция Excel BYROW применяет функцию LAMBDA к каждой строке данного массива и возвращает один результат для каждой строки в одном массиве. В показанном примере данными является именованный диапазон C5:H9.

Примечание. BYROW — это бета-функция, доступная только через канал Insiders Excel 365.

Цель

Применить функцию к строке.

Возвращаемое значение

Один результат в строке.

Аргументы

  • array — Массив или массив для обработки.
  • lambda — лямбда-функция, применяемая к каждой строке.

Синтаксис BYROW в Excel

=BYROW(array, lambda).

Примечания по использованию

Функция BYROW в Excel применяет метод LAMBDA к каждой строке в array и возвращает один результат для каждой строки в виде единого массива . Целью BYROW является обработка данных в массиве или диапазоне построчно. Например, если BYROW задан массив с 10 строками, BYROW вернет массив с 10 результатами. Вычисления, выполняемые для каждого столбца, обеспечиваются пользовательской функцией LAMBDA .

Функция BYROW принимает два аргумента: array и lambda. Массив — это массив или диапазон для обработки. Lambda — это функция, которую следует запускать для каждой строки массива. Функция LAMBDA должна возвращать один результат для каждого столбца, иначе BYROW вернет #CALC! ошибка.

Примеры функции BYROW в Excel

Чтобы суммировать каждую строку в диапазоне, вы можете использовать функцию BYROW следующим образом:

=BYROW(range,LAMBDA(row,SUM(row)))

Функция BYROW передает содержимое диапазона по одной строке за раз в функцию LAMBDA, которая использует функцию SUM для вычисления суммы для каждой строки. Затем BYROW предоставляет результаты вычисления LAMBDA в одном массиве. Если диапазон содержит 10 строк, BYROW возвращает массив, содержащий 10 сумм.

Пример рабочего листа

На листе, показанном выше, функция BYROW используется для выполнения двух отдельных вычислений с данными, которые представляют собой именованный диапазон C5:H15. В ячейке J5 приведенная ниже формула используется для вычисления суммы для каждой строки:

=BYROW(data,LAMBDA(row,SUM(row)))

Поскольку в данных 11 строк, результатом будет массив с 11 суммами, подобными этому:

{432;440;403;455;479;433;426;463;407;431;519}

Значения в этом массиве переходят в диапазон J5:J15. Приведенные ниже формулы являются другими примерами того, как BYROW можно использовать для тех же данных с формулами, которые следуют тому же шаблону:

=BYROW(data,LAMBDA(row,MAX(row))) // max
=BYROW(data,LAMBDA(row,MIN(row))) // min
=BYROW(data,LAMBDA(row,AVERAGE(row))) // среднее

Подсчет ячеек более 90

В ячейке К5 формула немного сложнее. Цель в этом случае — подсчитать значения в каждой строке больше 90:

=BYROW(data,LAMBDA(row,SUM(--(row>90)))) // count >90

Работая изнутри наружу, логическое выражение используется для проверки всех значений в строке на соответствие 90, а полученные значения TRUE и FALSE преобразуются в 1 и 0 с помощью двойного отрицания (—). Функция SUMсуммирует результат и возвращает количество. Как и прежде, LAMBDA выполняется для каждой строки данных, поэтому всего 11 результатов попадают в диапазон K5:K15.

Примечание: вместо функции SUM можно использовать функцию COUNTIF. Обратите внимание, что COUNTIF требует диапазона и не может использовать массив в памяти, поэтому в некоторых ситуациях метод не подходит.

Автор А. Днепров

Обучаю основам работы с офисными программами.

Функция BYROW в Excel
14.1 Контекстное меню и копирование свойств обьектов