Формула Excel с вложенными функциями IF / LEFT / AND - PullRequest
0 голосов
/ 20 марта 2019

Я создал формулу с вложенными операторами IF, которая работает нормально, но мне нужно добавить к ней больше логики.Я бы вложил дополнительные выражения в формулу, и я немного запутался в том, как правильно это сделать.

Текущая формула:

=IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",K3)))))

Это работает нормально, но теперь мне нужно добавить дополнительную логику:

  • Если G3 начинается с "9", а K3 не начинается с "075", "076" или "089", то ячейка равна "997"

Моя неудачная попытка была похожа на это:

IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",IF(LEFT(G3,1)="9"(AND(LEFT(K3,3)<>"075"))K3))))))

С этим вложенным утверждением я добавил:

IF(LEFT(G3,1)="9"(AND(LEFT(K3,3)<>"075"))

Тогда, очевидно, я быМне нужно повторить это еще несколько раз для "076" и "089", но я еще не понял это правильно только для одного из них.

Я знаю, что это может быть достигнуто с помощью некоторого кода VBA, но дляЭтот файл, я надеюсь избежать VBA и ограничить его только формулами.

Любая помощь будет оценена!

РЕДАКТИРОВАТЬ: Используя ответы Скотта &Л. Скотт, у меня все еще есть «997», вводимый в ячейку, даже когда значение K3 равно 075, 076 или089. Ниже приведен скриншот рекомендуемой формулы Л. Скотта с результатом, все еще показывающим «997».enter image description here

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вот формула, которую вы можете использовать:

=IF(SUMPRODUCT(--(LEFT(G3,1)={"1","2","3"}))>0,"998",IF(SUMPRODUCT(--(LEFT(G3,1)={"4","5"}))>0,"996",IF(AND(SUMPRODUCT(--(LEFT(G3,1)="9"))>0,SUMPRODUCT(--(LEFT(K3,3)={"075","076","089"}))=0),"997")))

Если K3 является действительным числом, а не текстом, то у @ScottCraner есть очень хорошая точка, и он не увидит начальный ноль.Чтобы преодолеть это, вы должны добавить ' перед значением в ячейке K3.

1 голос
/ 20 марта 2019

Чтобы сохранить его в существующем стиле вложенности, если:

=IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",IF(AND(LEFT(G3,1)="9",NOT(OR(OR(LEFT(K3,3)="075",LEFT(K3,3)="076"),LEFT(K3,3)="089"))),"997",K3))))))

=
IF(LEFT(G3,1)="1","998",
  IF(LEFT(G3,1)="2","998",
    IF(LEFT(G3,1)="3","998",
      IF(LEFT(G3,1)="4","996",
        IF(LEFT(G3,1)="5","996",
          IF(
            AND(
              LEFT(G3,1)="9",
              NOT(
                OR(
                  OR(
                    LEFT(K3,3)="075",
                    LEFT(K3,3)="076"),
                  LEFT(K3,3)="089"
                )
              )
            ), "997", K3
          )
        )
      )
    )
  )
)
...