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)))

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

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

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

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

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

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

Результат: 3


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

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

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

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

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

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

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

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

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

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

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

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

  1. Лямбда-функция, переданная функции MAP, неверна
  2. Если один или несколько аргументов "имя" недействительны, возникает следующая ошибка:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источники

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

Logo Upline Studio Creatium

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

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

Работает на Creatium