Используйте функцию FILTER, чтобы “включить” совпадения с массивом, а не с одним значением, если это возможно.

Вопрос или проблема

В настоящее время я пытаюсь фильтровать некоторые данные. У меня есть два листа: один с именами пользователей, электронной почтой и их функциями в компании, а другой с теми же адресами электронной почты и колонкой, в которой указано, к каким почтовым ящикам они имеют доступ.
Я хочу выбрать функцию, посмотреть, какие пользователи с ней связаны, а затем использовать эти адреса электронной почты, чтобы снова проверить, какие почтовые ящики связаны. Таким образом, я могу увидеть, какая функция соответствует каким пользователям и какие права на почтовые ящики у них есть.
С помощью =FILTER у меня уже есть лист, где я могу выбрать функцию из выпадающего меню и затем получить соответствующих пользователей, но теперь, как я уже сказал, я хочу взять эти вновь отфильтрованные адреса электронной почты пользователей и снова сопоставить их с почтовыми ящиками.

=FILTER(ADExportUsersNL!A2:J445;ADExportUsersNL!J2:J445=A3;"NoData") <-- это первая функция, которая уже работает.
=FILTER(MailboxRechten!B2:L3452;MailboxRechten!G2:G3452=B6;"NoData") <-- Это та, которую я хочу сделать работающей.

Проблема в том, что часть формулы INCLUDE (то есть =B6) позволяет мне проверять только одно значение за раз, одну ячейку. Если я укажу одну ячейку, в которой оказались ранее отфильтрованные данные, тогда это работает. Я хочу иметь возможность искать таким же образом, но затем в диапазоне. Например: =FILTER(MailboxRechten!B2:L3452;MailboxRechten!G2:G3452=B5:B100;"NoData"), но это не работает и вызывает ошибку. Я пытался использовать XLOOKUP, но не думаю, что правильно его понимаю. Я не могу загрузить некоторые образцы данных сейчас, так как это заняло бы много времени, чтобы их анонимизировать, поэтому надеюсь, что моё объяснение достаточно ясно. Может быть, есть подсказка, какую функцию использовать?

Большое спасибо за помощь.

Кто-то другой разобрался с этим за меня, я помечу это как ответ, и если что-то появится, я изменю это позже.

=FILTER(MailboxRechten!B2:L3452;isnumber(match(MailboxRechten!G2:G3452;B5:B100;0));"NoData")

Ответ или решение

Вопрос, с которым вы столкнулись, касается использования функции FILTER в Excel для фильтрации данных на основании нескольких значений, находящихся в массиве. Это может быть полезно, когда вы хотите сопоставить адреса электронной почты пользователей с правами на доступ к почтовым ящикам, основанным на их функциях в компании. Давайте детально рассмотрим, как можно решить вашу задачу.

Введение в проблему

У вас есть два листа: первый содержит информацию о пользователях с их функциями и адресами электронной почты, а второй – информацию о почтовых ящиках и правах доступа пользователей. Вы уже успешно используете функцию FILTER, чтобы получить список пользователей на основе выбранной функции. Теперь необходимо расширить этот подход, чтобы проверить права доступа к почтовым ящикам, основываясь на нескольких адресах электронной почты, а не только на одном.

Решение с использованием функции FILTER и MATCH

Ваше текущее решение с использованием FILTER только для одного значения может быть эволюционировано путем использования комбинации функций FILTER и MATCH. Основная идея заключается в том, чтобы определить, содержится ли элемент из одного массива (адреса электронной почты) в другом массиве (адреса, к которым вы хотите получить доступ).

Пример формулы

Формула, предложенная вами пользователем на форуме, выглядит следующим образом:

=FILTER(MailboxRechten!B2:L3452; ISNUMBER(MATCH(MailboxRechten!G2:G3452; B5:B100; 0)); "NoData")

Объяснение работы формулы

  1. FILTER – Эта функция фильтрует массив данных, в данном случае MailboxRechten!B2:L3452, на основе критериев, которые мы задаем во втором аргументе.

  2. MATCH – Эта функция ищет каждый элемент диапазона MailboxRechten!G2:G3452 в диапазоне B5:B100. Если элемент найден, MATCH возвращает номер строки, где было найдено совпадение. Если совпадений нет, возвращается ошибка.

  3. ISNUMBER – Эта функция проверяет, является ли результат MATCH числом (то есть, было ли найдено совпадение). Таким образом, на выходе мы получаем булевый массив, который говорит нам, какие адреса электронной почты из первого списка имеют соответствующие права доступа во втором.

  4. Результат – Функция FILTER возвращает все строки из диапазона MailboxRechten!B2:L3452, которые соответствуют критериям, и, если совпадений не найдено, отображает "NoData".

Заключение

Использование комбинации функций FILTER, MATCH и ISNUMBER позволяет вам эффективно фильтровать данные, основанные на множественных значениях в массиве. Это решение делает вашу работу более гибкой и мощной, позволяя вам динамически управлять данными без необходимости ручного поиска.

Если у вас возникнут дополнительные вопросы или понадобится дальнейшая помощь, пожалуйста, не стесняйтесь обращаться. Удачи в ваших дальнейших вычислениях!

Оцените материал
Добавить комментарий

Капча загружается...