Функция MAP в Excel

Функция MAP в Excel «сопоставляет» пользовательскую функцию LAMBDA с каждым значением в предоставленном массиве. LAMBDA применяется к каждому значению, а результатом MAP является массив результатов тех же размеров, что и исходный массив.

Что делает функция MAP в Excel?

Функция MAP в Excel сопоставляет массив с пользовательской функцией.

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

Массив результатов.

Аргументы

  • array1 — Массив, который будет отображен.
  • array2 — [необязательно] Дополнительные массивы, необходимые LAMBDA.
  • lambda — применяемая пользовательская функция LAMBDA.

Синтаксис

=MAP(array1, [array2], …, lambda)

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

Функция MAP «сопоставляет» пользовательскую функцию LAMBDA с каждым значением в предоставленном массиве. LAMBDA применяется к каждому значению, а результатом MAP является массив результатов тех же размеров, что и исходный массив.

Функция MAP полезна, когда вы хотите обработать каждый элемент массива индивидуально, а не как операцию с массивом, которая дает результат массива. MAP также полезен, когда логика формулы сложна и лучше всего управлять ею в одном месте. Используя именованную функцию LAMBDA с MAP, можно повторно использовать тот же код в другом месте.

Функция MAP принимает два обязательных аргумента: массив1 и лямбда. Array1 — это массив, который необходимо сопоставить. Lambda — это пользовательская лямбда-функция, которую следует запускать для каждого элемента массива array1. Дополнительные аргументы могут быть добавлены в форме array2, array3 и т. д. перед лямбда-выражением, которое всегда должно быть последним предоставленным аргументом.

Если для MAP предоставляются дополнительные массивы, функцию LAMBDA необходимо настроить на прием дополнительных аргументов. Array1 должен быть первым аргументом в LAMBDA, array2 должен быть вторым аргументом и т. д.

Примеры

Функция MAP сопоставляет каждое значение массива с пользовательской функцией LAMBDA. Например, формула ниже отображает функцию LAMBDA, которая просто добавляет 1 к каждому элементу предоставленного массива:

=MAP({1,2,3},LAMBDA(a,a+1)) // возвращает {2,3,4}

Переменная  a, переданная в функцию LAMBDA в качестве первого аргумента, равна array1 в функции MAP.

Удалить нечисловые значения

На листе, показанном выше, MAP используется для удаления нечисловых значений из предоставленного массива (B5:D16). Формула в F5:

=MAP(B5:D16,LAMBDA(a,IF(ISNUMBER(a),+a,"")))

Поскольку array1 имеет 12 строк и 3 столбца, результатом MAP является массив 12 x 3, который попадает в диапазон F5:H16.

Примечание. Обозначение +a используется для того, чтобы заставить Excel преобразовать a из ссылки на диапазон в массив значений. Без + MAP вернет #CALC! ошибка. Этот шаг иногда необходим при работе с формулами массива, которые разливаются.

Дополнительные массивы

MAP может принимать дополнительные массивы, которые LAMBDA может использовать во время вычислений. Приведенная ниже формула добавляет каждый элемент массива array1 к соответствующему элементу массива array2 :

=MAP({1,2,3},{1,2,3},LAMBDA(a,b,a+b)) // возвращает {2,4,6}

Здесь переменная  a, заданная функции LAMBDA, — это array1 в функции MAP,  а b — это array2.

Когда использовать MAP

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

=array+1
=MAP(array,LAMBDA(a,a+1))

Таким образом, нет особой причины использовать MAP, если собственная операция с массивом приведет к тому же результату. Однако есть случаи, когда MAP может быть полезен:

  1. Для запуска логических тестов с помощью функций AND ​​и OR. Эти функции объединяют массивы в одно значение, поэтому обычно их можно использовать в операциях с массивами, которым необходимо поддерживать несколько значений.
  2. Для выполнения определенных агрегатных операций над несколькими массивами, т.е.=MAP(rng1,rng2,rng3,LAMBDA(a,b,c,MAX(a,b,c)))
  3. Чтобы выполнить функцию, которая в противном случае не произойдет.

Примечание. Функция MAP возвращает массив результатов.

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

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

Функция MAP в Excel
Функция BYROW в Excel