MAP
Отобразить (на карте или словно на карте), найти положение чего-либо.
Функция сопоставляет каждое значение из заданных массивов с новым значением, применяя к каждому значению функцию LAMBDA.
Другими словами, MAP позволяет «пройтись» по каждому элементу в выбранном диапазоне и применить к нему определенную функцию. Например, можно умножить каждое число в диапазоне на два, или объединить значения из двух столбцов в один.
Работа с массивами / Array
На русском: команда не имеет эквивалента на русском языке.
MAP(массив1; [массив2; …]; LAMBDA)
На английском
MAP(array1, [array2, ...], LAMBDA)
Пояснения:
MAP(массив1, [массив2, ...], LAMBDA)
массив1
– массив или диапазон, который необходимо сопоставить.
массив2, …
: [OPTIONAL] – дополнительные массивы или диапазоны, которые необходимо сопоставить.
LAMBDA
– лямбда-функция, которая сопоставляется с каждым значением в выбранных массивах с целью получения нового сопоставленного значения.
LAMBDA(имя1, [имя2, …], формула)
#N/A
. Эти аргументы относятся к значениям во входных массивах, сопоставляемым с новым значением.MAP(A1:A5, LAMBDA(ячейка, ячейка*2))
: функция сопоставления с диапазоном в качестве входного параметра. Данная формула умножит каждое значение в диапазоне A1:A5 на 2.
MAP(A1:A5, B1:B5, LAMBDA(ячейка1, ячейка2, MAX(ячейка1, ячейка2)))
: функция сопоставления с несколькими диапазонами в качестве входного параметра. Данная формула сопоставит каждую пару значений из диапазонов A1:A5 и B1:B5 и вернет максимальное значение из каждой пары.
MAP(UNIQUE(A1:A10), LAMBDA(число, число + 1))
: функция сопоставления с диапазоном в качестве входного параметра.
MAP(A1:A4, LAMBDA(позиция, JOIN("-", SPLIT(позиция, ","))))
: Данная формула преобразует каждое значение в диапазоне A1:A4, разделяя его по запятым и затем объединяя полученные фрагменты с помощью дефиса.
Точная задача: простая операция удвоения с использованием функции сопоставления
Иллюстрация к функции MAP Google Таблиц. Удвоение за счёт сопоставления
Формула из примера в ячейке C5
: ==MAP(A2:B3; LAMBDA(ячейка; ячейка*2))
Точная задача: сопоставление значений, разделенных запятыми, с кодами SKU, разделенными дефисами
Иллюстрация к функции MAP Google Таблиц. Сопоставление значений с кодами SKU
Формула из примера в ячейке B2:
: =MAP(A2:A5; LAMBDA(позиция; JOIN("-"; SPLIT(позиция; ","))))
Точная задача: сопоставление нескольких входных диапазонов с максимальным значением в каждом наборе данных
Иллюстрация к функции MAP Google Таблиц. Сопоставление с максимальным значением
Формула из примера в ячейке A9
: =MAP(A2:B4; D2:E4; G2:H4; LAMBDA(значA; значB; значC; МАКС(значA; значB; значC)))
Точная задача: использование именованной функциив качестве лямбда-функции для определения количества ячеек с числами
Пример данных:
Именованная функция CONTAINS_NUMBER
проверяет, содержит ли выбранная строка какое-либо число.
Определение формулы: =ARRAYFORMULA(OR(ISNUMBER(SPLIT(ячейка, " "))))
, где "ячейка" – это тег аргумента, заданный для функции CONTAINS_NUMBER
.
Пример формулы: =COUNTIF(MAP(A1:C2, CONTAINS_NUMBER), true)
Результат: 3
Размеры входных массивово не совпадают
Если размеры входных массивово не совпадают, возникает следующая ошибка:
"Аргументы сопоставляемых массивов имеют различные размеры".
Пример: =MAP(C1:C4, D1:D2, LAMBDA(x, x+1))
В этом примере размер массива C1:C4
отличается от размера массива D1:D2
.
Количество аргументов "имя" переданной лямбда-функции не равно количеству входных массивов
Если количество аргументов "имя" переданной лямбда-функции не равно количеству сопоставляемых входных массивов, возникает следующая ошибка:
"Неверное количество аргументов лямбда-функции: 2 вместо 3".
Пример: =MAP(C1:C4, D1:D4, LAMBDA(ячейка, ячейка+1))
В этом примере для лямбда-функции задана только одна ячейка с аргументом "имя", хотя было передано два сопоставляемых массива.
Последний параметр функции MAP не является лямбда-функцией
Если последний параметр функции MAP не является лямбда-функцией, возникает следующая ошибка:
"Аргумент должен быть лямбда-функцией".
Пример: =MAP(C1:C3, 3)
Лямбда-функция, переданная функции MAP, неверна
Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:
"Аргумент 1 лямбда-функции является недопустимым именем".
Пример: =MAP(C1:C3, LAMBDA(C1, C1+1))
В этом примере С1
является недопустимым именем, поскольку конфликтует с диапазоном.
При применении лямбда-функции входной массив сопоставляется с несколькими значениями или другим массивом
Если при применении лямбда-функции каждое значение во входном массиве сопоставляется с несколькими значениями или другим массивом, возникает следующая ошибка:
"Необходимо указать одиночное значение. Результаты из вложенных массивов не поддерживаются".
Пример: =MAP(E1, LAMBDA(слово, SPLIT(слово, " ")))
В этом примере мы пытаемся сопоставить текст в ячейке с массивом слов.
MAKEARRAY » вычисляет и создает массив указанного размера.
REDUCE » преобразует массив в накопленный результат.
SCAN » сканирует массив и выводит промежуточные значения.
Google Sheets function list (на английском)
Список функций Google Таблиц (на русском)
Простой текст
Работает на Creatium