Функция 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 требует диапазона и не может использовать массив в памяти, поэтому в некоторых ситуациях метод не подходит.