1. Главная страница
  2. ››
  3. Формулы
  4. ››
  5. MAP - Upline Studio

MAP - Upline Studio

Команда

MAP

Перевод на русский

Отобразить (на карте или словно на карте), найти положение чего-либо.

Описание

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

Другими словами, MAP позволяет «пройтись» по каждому элементу в выбранном диапазоне и применить к нему определенную функцию. Например, можно умножить каждое число в диапазоне на два, или объединить значения из двух столбцов в один.

Тип функции

Работа с массивами / Array

Синтаксис

На русском: команда не имеет эквивалента на русском языке.

MAP(массив1; [массив2; …]; LAMBDA)
Замечание для новичков
Выбор запятой или точки c запятой между аргументами формулы определяется не тем, на каком языке записана команда, а языковой версией Google Таблиц как таковых. Если у вас русскоязычные Google Таблицы, то команду вы можете записать и на русском, и на английском языке — Google Таблицы её просто сами переведут. Но вот разделителем должна быть точка с запятой, иначе вы получите синтаксическую ошибку.

На английском

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 Таблиц. Удвоение за счёт сопоставления

Иллюстрация к функции MAP Google Таблиц. Удвоение за счёт сопоставления

Формула из примера в ячейке C5: ==MAP(A2:B3; LAMBDA(ячейка; ячейка*2))

Сопоставление значений с кодами SKU

Точная задача: сопоставление значений, разделенных запятыми, с кодами SKU, разделенными дефисами

Иллюстрация к функции MAP Google Таблиц. **Сопоставление значений с кодами SKU**

Иллюстрация к функции MAP Google Таблиц. Сопоставление значений с кодами SKU

Формула из примера в ячейке B2:: =MAP(A2:A5; LAMBDA(позиция; JOIN("-"; SPLIT(позиция; ","))))

Сопоставление с максимальным значением

Точная задача: сопоставление нескольких входных диапазонов с максимальным значением в каждом наборе данных

Иллюстрация к функции MAP Google Таблиц. Сопоставление с максимальным значением

Иллюстрация к функции MAP Google Таблиц. Сопоставление с максимальным значением

Формула из примера в ячейке A9: =MAP(A2:B4; D2:E4; G2:H4; LAMBDA(значA; значB; значC; МАКС(значA; значB; значC)))

Использование именованной функции

Точная задача: использование именованной функциив качестве лямбда-функции для определения количества ячеек с числами

Создать копию

Пример данных:

screenshot01

Именованная функция CONTAINS_NUMBER проверяет, содержит ли выбранная строка какое-либо число.

Определение формулы: =ARRAYFORMULA(OR(ISNUMBER(SPLIT(ячейка, " ")))), где "ячейка" – это тег аргумента, заданный для функции CONTAINS_NUMBER.

Пример формулы: =COUNTIF(MAP(A1:C2, CONTAINS_NUMBER), true)

Результат: 3


Распространенные ошибки

  1. Размеры входных массивово не совпадают

    Если размеры входных массивово не совпадают, возникает следующая ошибка:

    "Аргументы сопоставляемых массивов имеют различные размеры".

    Пример: =MAP(C1:C4, D1:D2, LAMBDA(x, x+1))

    В этом примере размер массива C1:C4 отличается от размера массива D1:D2.

  2. Количество аргументов "имя" переданной лямбда-функции не равно количеству входных массивов

    Если количество аргументов "имя" переданной лямбда-функции не равно количеству сопоставляемых входных массивов, возникает следующая ошибка:

    "Неверное количество аргументов лямбда-функции: 2 вместо 3".

    Пример: =MAP(C1:C4, D1:D4, LAMBDA(ячейка, ячейка+1))

    В этом примере для лямбда-функции задана только одна ячейка с аргументом "имя", хотя было передано два сопоставляемых массива.

  3. Последний параметр функции MAP не является лямбда-функцией

    Если последний параметр функции MAP не является лямбда-функцией, возникает следующая ошибка:

    "Аргумент должен быть лямбда-функцией".

    Пример: =MAP(C1:C3, 3)

  4. Лямбда-функция, переданная функции MAP, неверна

    Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:

    "Аргумент 1 лямбда-функции является недопустимым именем".

    Пример: =MAP(C1:C3, LAMBDA(C1, C1+1))

    В этом примере С1 является недопустимым именем, поскольку конфликтует с диапазоном.

  5. При применении лямбда-функции входной массив сопоставляется с несколькими значениями или другим массивом

    Если при применении лямбда-функции каждое значение во входном массиве сопоставляется с несколькими значениями или другим массивом, возникает следующая ошибка:

    "Необходимо указать одиночное значение. Результаты из вложенных массивов не поддерживаются".

    Пример: =MAP(E1, LAMBDA(слово, SPLIT(слово, " ")))

    В этом примере мы пытаемся сопоставить текст в ячейке с массивом слов.

Сопутствующие функции

Другие функции Google Таблиц

Список функций

Другие примеры именованных функций

MAKEARRAY » вычисляет и создает массив указанного размера.

REDUCE » преобразует массив в накопленный результат.

SCAN » сканирует массив и выводит промежуточные значения.

Источники

Google Sheets function list (на английском)

Список функций Google Таблиц (на русском)

Функция MAP

Logo Upline Studio Creatium

Наша команда Uplinestudio разрабатывает сайты под разные потребности клиентов. Одним из ключевых направлений в нашей разработке является создание сайтов на Creatium.

Оставить заявку

Работает на Creatium