Как вложить более двух функций IF ISNUMBER SEARCH в формулу одной ячейки?

Как вложить более двух функций IF ISNUMBER SEARCH в формулу одной ячейки?

Я пытаюсь вложить более двух ( ISNUMBER SEARCH) операторов в ячейку, и последние два не работают. Первые два аргумента ("n/a" и "r") работают, но третий и четвертый вытягивают неверные данные.

Можно ли иметь более двух поисков в ячейке? Где моя формула неверна?

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5))))

Моя электронная таблица

Заранее благодарны за Вашу помощь

решение1

Это вызвано тем, что формула находит один "r" в значениях ячеек "rr", а также "rrr". Попробуйте изменить порядок условия ISNUMBER. Начните с "rrr", затем "rr" и, наконец, "r". Это должно сработать.

=IF(ISNUMBER(SEARCH("N/A",$L2)),$E2+$AY$2,IF(ISNUMBER(SEARCH("rrr",$L2)),$E2+$AY$5,IF(ISNUMBER(SEARCH("rr",$L2)),$E2+$AY$4,IF(ISNUMBER(SEARCH("r",$L2)),$E2+$AY$3))))

С наилучшими пожеланиями, Лукас

решение2

Преобразуя формулу, мы видим:

IF( ISNUMBER(SEARCH("N/A",$L2)),
    $E2+$AY$2,
    IF( ISNUMBER(SEARCH("r",$L2)),
        $E2+$AY$3,
        IF( ISNUMBER(SEARCH("rr",$L2)),
            $E2+$AY$4,
            IF( ISNUMBER(SEARCH("rrr",$L2)),
                $E2+$AY$5
              )
          )
      )
  )

Теперь мы видим:

  1. Последний (самый внутренний) IF() не содержит раздел ELSE;
  2. 2-й IF() возвращает True для любого значения, проверенного другими внутренними IF(), поэтому никакой внутренний IF() не может вернуть True, поскольку внешние IF() уже сделали это.

Рекомендация: заменить SEARCH() простой проверкой уравнений.

решение3

С помощью SEARCHфункции ISNUMBERможно проверить, содержит ли ячейка определенный текст или нет.

SEARCHвозвращает позицию искомой строки, если она найдена, а формула проверяет, найдена ли искомая строка, используя ISNUMBERдля нахождения ее числовых позиций.

В вашем случае при поиске rrили rrrформула находит rсреди rrи в rrrи каждый раз вычисляет $E2+$AY$3вместо $E2+$AY$4или $E2+$AY$5.

Если L2содержит любой другой текст, rrто rrrта же формула будет работать.

@Muji проделал трюк, использовал строки поиска в обратном порядке, так что формула находит сначала &, а затем rrrи работает правильно.rrrrrr

Простые IF functionмогут успешно все это проверить.

=IF($L$2="N/A",$E$2+$AY$2,IF($L$2="r",$E$2+$AY$3,IF($L$2="rr",$E$2+$AY$4,IF($L$2="rrr",$E$2+$AY$5))))

При необходимости измените ссылки на ячейки в формуле.

Связанный контент