Возврат значения ячейки, если другая ячейка содержит значения

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

Возьмите эту таблицу:

введите описание изображения здесь

Мне нужно найти в столбце “Имя” Петра, Анну или обоих, и если они найдены, вернуть значение из ячейки Бонус.

Я попробовал несколько предложений от Copilot – например (переведено с датского Excel):

=FILTER([Бонус]; (OR([Имя]="Анна"; [Имя]="Петр")))
=IF(OR([Имя]="Анна"; [Имя]="Петр"); [Бонус]; "")
=SUMIFS([Бонус], [Имя], "Анна") + SUMIFS([Бонус], [Имя], "Петр")

И ни один из них не работает.

Есть предложения?

Попробуйте использовать следующую формулу:

введите описание изображения здесь


• Формула, использованная в ячейке D3

=IF(OR(1-ISERR(FIND({"Анна","Петр"},[@Имя]))),[@Бонус],"")

Или,

=IF(OR(ISNUMBER(FIND({"Анна","Петр"},[@Имя]))),[@Бонус],"")

Если имена не различают регистр, можно использовать SEARCH() вместо функции FIND()!


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

Как вернуть значение из ячейки, если другая ячейка содержит данные

В рамках работы с таблицами в Excel возникает необходимость извлечения данных на основе определённых условий. В данной статье рассмотрим, как можно вернуть значение из столбца «Бонус», если в столбце «Имя» содержатся определённые значения, такие как «Петр», «Анна» или оба этих имени.

Исходные данные

Рассмотрим таблицу, которая содержит два столбца: «Имя» и «Бонус». Ваша задача состоит в том, чтобы проверить, есть ли в столбце «Имя» искомые значения, и в случае их нахождения вернуть соответствующие значения из столбца «Бонус».

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

Существует несколько формул, которые могут помочь в данной задаче:

  1. Использование FIND() или SEARCH():
    Эти функции помогут нам определить, содержится ли одно из искомых значений в ячейке. Разница между ними заключается в том, что FIND() чувствителен к регистру, а SEARCH() — нет.

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

    =IF(OR(ISNUMBER(FIND({"Анна", "Петр"},[@Имя]))),[@Бонус],"")

    В данном случае функция ISNUMBER() проверяет, возвращает ли FIND() числовое значение (показатель наличия имени в ячейке). Если хотя бы одно из условий истинно, то функция IF вернет значение из ячейки «Бонус», иначе — пустую строку.

  2. Использование SUMIFS() для суммирования:
    Если необходимо сложить все бонусы для найденных имен, можно использовать SUMIFS(). Например:

    =SUMIFS([Бонус], [Имя], "Анна") + SUMIFS([Бонус], [Имя], "Петр")

    Этот вариант подходит для суммирования всех бонусов для указанных имен.

  3. Использование FILTER() для фильтрации данных:
    Если ваша версия Excel поддерживает функцию FILTER(), можно использовать:

    =FILTER([Бонус], (OR([Имя]="Анна", [Имя]="Петр")))

    Данная формула возвращает массив всех бонусов, соответствующих условиям.

Рекомендации по выбору формулы

  • Оптимизация производительности: Если в вашем наборе данных много строк, и вам нужно оптимизировать производительность, обратите внимание на способ использования формул. SUMIFS() скорее всего будет быстрее, чем сложные IF() конструкции.
  • Поддержка разных языков интерфейса: При использовании формул учитывайте, что названия функций могут различаться в зависимости от языка интерфейса. Например, в английской версии Excel это будут FIND, IF, OR и т.д.

Заключение

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

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

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