Как использовать XLOOKUP в Google Таблицах

Быстрые ссылки
About XLOOKUP in Google Sheets
How to Use XLOOKUP in Google Sheets
Краткое описание XLOOKUP в Google Таблицах
Функция XLOOKUP позволяет искать значение в одном диапазоне ячеек и возвращать соответствующий результат из другого диапазона. Это удобно для больших таблиц, где ручной просмотр занимает много времени.
Синтаксис:
XLOOKUP(search_value, lookup_range, result_range, missing_value, match_mode, search_mode)Первые три аргумента обязательны; оставшиеся три — опциональны и позволяют гибко настроить поведение поиска.
Короткие определения аргументов:
- Search_value — искомое значение: число, текст или ссылка на ячейку. Текст в кавычках.
- Lookup_range — диапазон, в котором ищут искомое значение; должен быть одной строкой или одним столбцом.
- Result_range — диапазон, из которого возвращается значение; должен совпадать по размеру с lookup_range.
- Missing_value — значение, возвращаемое при отсутствии совпадения (по умолчанию #N/A).
- Match_mode — режим совпадения: 0 = точное, 1 = точное или следующее большее, -1 = точное или следующее меньшее, 2 = совпадение с подстановочными символами.
- Search_mode — режим поиска: 1 = сверху вниз (по умолчанию), -1 = снизу вверх, 2 = бинарный поиск по возрастанию, -2 = бинарный поиск по убыванию.
Факт-бокс:
- Обязательных аргументов: 3
- Максимум аргументов: 6
- Поддерживает поиск в обе стороны (влево/вправо)
Важно: lookup_range и result_range должны быть одинаковой длины и одной ориентации (оба столбцы или обе строки). Иначе XLOOKUP вернёт ошибку.
Как использовать XLOOKUP — базовые примеры
Ниже приведены реальные варианты использования с пояснениями и изображениями исходной таблицы.
Пример 1 — простой поиск по номеру заказа, чтобы получить имя клиента:
=XLOOKUP(123456,D2:D14,A2:A14)Здесь 123456 — search_value (номер заказа), D2:D14 — lookup_range (столбец с номерами заказов), A2:A14 — result_range (столбец с именами клиентов). Результат — имя клиента, связанное с заказом.

Пояснение: XLOOKUP умеет искать как слева направо, так и справа налево, поэтому можно искать имя клиента по номеру заказа и наоборот.
Пример 2 — поиск имени клиента по его имени, чтобы вернуть номер заказа:
=XLOOKUP("Marge Simpson",A2:A14,D2:D14)
Отсутствующее значение
По умолчанию при отсутствии совпадения функция возвращает ошибку #N/A. Чтобы вернуть более удобное значение, укажите fourth-аргумент:
=XLOOKUP("Homer Simpson",A2:A14,D2:D14,"ZERO")Результат: вместо #N/A отобразится текст “ZERO”.

Режим совпадения (match_mode)
Пример: ищем значение 29 в диапазоне сумм и возвращаем имя клиента. Укажем match_mode = 1 (точное совпадение или следующее большее):
=XLOOKUP(29,F2:F14,A2:A14,,1)Пояснение: если точного 29 нет, XLOOKUP вернёт ближайшее большее значение (например, 30).

Режим поиска (search_mode)
Пример: используем match_mode = -1 (точное или следующее меньшее) и search_mode = -1 (поиск снизу вверх):
=XLOOKUP(29,F2:F14,A2:A14,,-1,-1)Пояснение: если несколько строк удовлетворяют условию (например, несколько значений равны 28 — меньшее ближайшее), то при search_mode = -1 вернётся первое найденное снизу вверх.

Аналогично, при search_mode = 1 (по умолчанию) будет найден первый подходящий сверху вниз.

Частые ошибки и ограничения (когда XLOOKUP не сработает)
- Несовпадающие размеры диапазонов
- Проблема: lookup_range и result_range разной длины или разной ориентации.
- Симптом: #REF! или неожиданное поведение.
- Решение: исправьте диапазоны так, чтобы они были ровно одинаковыми по длине и оба столбцы или обе строки.
- Неправильные типы данных
- Проблема: числа хранятся как текст или есть лишние пробелы.
- Симптом: нет совпадения при видимом соответствии.
- Решение: привести типы (VALUE, TRIM, TO_TEXT) или использовать VALUE/TO_TEXT при поиске.
- Бинарный поиск без сортировки
- Проблема: выбран search_mode = 2 или -2, но диапазон не отсортирован соответственно.
- Симптом: неверные результаты.
- Решение: используйте обычный поиск (1 или -1) или отсортируйте данные.
- Wildcards и режим совпадения
- Проблема: match_mode = 2 (подстановочные символы) и ввод без учёта регистра/спецсимволов.
- Симптом: неожиданные совпадения.
- Решение: используйте корректные подстановочные символы (*, ?) и экранирование.
- Поиск по множеству столбцов
- Проблема: попытка передать lookup_range как несколько столбцов.
- Симптом: ошибка или неверный результат.
- Решение: при необходимости соберите ключ с помощью JOIN/ARRAYFORMULA или используйте FILTER/INDEX+MATCH.
- Поддержка в старых версиях/совместимость с Excel
- Проблема: XLOOKUP не поддерживался в старых версиях Excel; в Google Таблицах функция доступна в современных аккаунтах.
- Решение: при экспорте/импорте в старые Excel используйте INDEX+MATCH или VLOOKUP как запасной вариант.
Важно: всегда проверяйте опцию “Показать формулы” и данные на лишние пробелы при неожиданном поведении.
Альтернативные подходы и когда их выбирать
- VLOOKUP / HLOOKUP — простой вариант для вертикального/горизонтального поиска, но ограничен направлением и требует указания номера столбца.
- INDEX + MATCH — гибкая связка, работает в любых направлениях, стабильна при вставке/удалении столбцов, но формулы сложнее.
- FILTER — возвращает массив строк/значений, удобна когда нужно несколько совпадений.
- QUERY — мощный инструмент для выборки по условию с SQL-подобным синтаксисом.
Пример замены XLOOKUP на INDEX+MATCH:
=INDEX(A2:A14, MATCH(123456, D2:D14, 0))Когда выбрать XLOOKUP: когда нужна простая и читаемая конструкция, поддерживающая разные режимы поиска и замену значения при отсутствии совпадения.
Методика выбора параметров XLOOKUP — мини-процесс
- Определите, где находится ключ (lookup_range) и где результат (result_range).
- Проверьте, одинаковой ли длины диапазоны.
- Решите, нужен ли точный поиск или приближённый (match_mode).
- Если приближённый и вы используете бинарный поиск, убедитесь, что данные отсортированы.
- Укажите понятное значение для отсутствующего результата (missing_value).
- Тестируйте на краевых случаях (пустые ячейки, дубляжи, типы данных).
Mermaid-диаграмма для выбора режима (решение):
flowchart TD
A[Нужно точное совпадение?] -->|Да| B[match_mode=0]
A -->|Нет| C[Нужно приблизительное?]
C -->|Да| D[Найти ближайшее большее/меньшее?]
D --> E{Больше}
D --> F{Меньше}
E --> G[match_mode=1]
F --> H[match_mode=-1]
C -->|Нужно wildcard совпадение| I[match_mode=2]
G --> I1[Проверить search_mode: 1 или -1; при сортировке можно 2/-2]
H --> I1
I --> I1Чек-листы по ролям
Аналитик:
- Убедиться, что ключи уникальны или понимать поведение при дубликатах.
- Проверить типы данных и удалить скрытые пробелы.
- Добавить missing_value для читабельности.
Финансовый аналитик:
- Использовать точное совпадение для идентификаторов транзакций.
- Для диапазонов сумм применять match_mode с осторожностью и документировать допущения.
Разработчик / автоматизатор:
- Писать формулы так, чтобы диапазоны были относительными/абсолютными по необходимости.
- Оборачивать формулу в IFERROR, если нужно скрыть внутренние ошибки.
QA / Тестировщик:
- Подготовить тестовые кейсы: точное совпадение, отсутствие, ближайшее большее, ближайшее меньшее, wildcard, несоответствие типов.
- Тестировать поведение при сортировке и без неё.
Критерии приёмки (тест-кейсы)
- Тест 1 — точное совпадение
- Ввод: существующее значение в lookup_range.
- Ожидаемый: корректный связанный результат из result_range.
- Тест 2 — отсутствие значения и missing_value
- Ввод: значение отсутствует.
- Ожидаемый: возвращается заданное missing_value или #N/A при его отсутствии.
- Тест 3 — match_mode = 1 (следующее большее)
- Ввод: число между существующими значениями.
- Ожидаемый: ближайшее большее значение.
- Тест 4 — search_mode = -1 (поиск снизу вверх)
- Ввод: несколько возможных совпадений.
- Ожидаемый: первый найденный снизу вверх.
- Тест 5 — бинарный поиск
- Ввод: выбор search_mode = 2 без сортировки.
- Ожидаемый: отметить как неприемлемое поведение / тест провален, пока данные не отсортированы.
Советы по производительности и безопасности
- Избегайте вложенных XLOOKUP для очень больших таблиц — это может замедлить расчёт. Вместо этого используйте индексированные диапазоны или вспомогательные столбцы.
- Для массовых операций лучше применять QUERY или предобработать данные (сводные таблицы, агрегирование).
- Не храните чувствительные данные в общей таблице без ограничений доступа.
Миграция из Excel и совместимость
- XLOOKUP в Excel и Google Таблицах почти идентичны по синтаксису, поэтому формулы можно переносить при наличии поддержки XLOOKUP в целевой среде.
- Для старых версий Excel используйте INDEX+MATCH или VLOOKUP как запасной вариант.
Краткий глоссарий (1 строка на термин)
- Lookup_range — диапазон, где ищут значение.
- Result_range — диапазон, из которого возвращают результат.
- Match_mode — режим совпадения (точный/приблизительный/wildcard).
- Search_mode — направление/алгоритм поиска.
Заключение
XLOOKUP — универсальная функция поиска в Google Таблицах, подходящая для большинства задач по сопоставлению данных. Она проще в чтении, чем INDEX+MATCH, и гибче, чем VLOOKUP/HLOOKUP. Перед массовым применением проверьте размеры диапазонов, типы данных и режимы поиска. Используйте предоставленные тест-кейсы и чек-листы, чтобы убедиться в корректности формул.
Итоговые рекомендации:
- Всегда проверяйте совпадение размеров диапазонов.
- Явно указывайте missing_value для удобства пользователей.
- При работе с большими данными тестируйте производительность и при необходимости переходите на QUERY или предварительную агрегацию.
Для дополнительной информации посмотрите связанные материалы: базовые функции Google Таблиц и примеры использования INDEX + MATCH.
Похожие материалы
Запись и воспроизведение DVD/CD в Ubuntu
Восстановить значки рабочего стола в Windows 10
Изменить таймаут sudo в Linux
Как быстро сканировать QR‑коды на Android