1

Он мне нужен для производства заказов в Канаде или Мексике на сумму более 1000 долларов США и в июле месяце. Формула, которую я пытаюсь использовать:

=IF(OR(A2="Canada","Mexico", IF(C2>1000, "Ship by Air", IF(MONTH(B2=7, "Ship by Air", "Ship by Ground")))

Я не знаю, как еще написать это со всей этой информацией.

3 ответа3

3

OR требует, чтобы каждая часть была своим собственным логическим выражением:

OR(A2="Canada","Mexico"

Должно быть:

OR(A2="Canada",A2="Mexico")

ИЛИ ЖЕ

OR(A2={"Canada","Mexico"})

А также

MONTH(B2

отсутствует )

Так:

=IF(OR(A2={"Canada","Mexico"}), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")))

Также вы пропускаете FALSE на внешнем IF, что может быть тем, что вы хотите, но я склоняюсь к его добавлению, чтобы мои формулы были более читабельными:

=IF(OR(A2={"Canada","Mexico"}), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")),FALSE)

Но мы можем объединить внутренние два, так как результат совпадает с истинным:

=IF(OR(A2={"Canada","Mexico"}), IF(OR(C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground"),FALSE)

Редактировать: это вернет Ship by Air если любое из следующего ИСТИНА:

  • А2 равен "Канада" или "Мексика"
  • C2> 1000
  • Месяц B2 - июль

:

=IF(OR(A2={"Canada","Mexico"},C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground")

Edit2: это вернет Ship by Air если все из следующего ИСТИНА:

  • А2 равен "Канада" или "Мексика"
  • C2> 1000
  • Месяц B2 - июль

:

=IF(AND(OR(A2={"Canada","Mexico"}),C2>1000, MONTH(B2)=7), "Ship by Air", "Ship by Ground")
2

У тебя хорошее начало; Ваша формула «псевдокод» для того, что вы хотите достичь. Вам просто нужно структурировать его для Excel.

Первая проблема заключается в том, что факторы, используемые функциями, должны быть заключены в круглые скобки, чтобы Excel знал, где они начинаются и заканчиваются. Ваше первое ИЛИ не имеет закрывающих скобок; то же самое с функцией МЕСЯЦ.

Вторая проблема заключается в том, что OR должно содержать выбор полных условий. Excel не обрабатывает сравнения со списком, по крайней мере, в не-массивном формате, как вы используете.

Кроме того, первый IF не содержит результата для того, что показывать, если OR ложно, так что вы, вероятно, хотите добавить это.

Таким образом, формула должна выглядеть так:

=IF(OR(A2="Canada",A2="Mexico"), IF(C2>1000, "Ship by Air", IF(MONTH(B2)=7, "Ship by Air", "Ship by Ground")),"Not Canada or Mexico")
0

Подсчитайте скобки: у вас есть пять открывающих скобок и три закрывающих скобки. Но счета должны совпадать.

Вы можете увидеть проблему с правильным отступом выражения:

=IF(
    OR(
       A2="Canada","Mexico", 
       IF(
          C2>1000, "Ship by Air", 
          IF(
             MONTH(
                   B2=7, "Ship by Air", "Ship by Ground"
             )
          )
       )
// ---------------- Here your expression ends
    )    // missing
)        // missing

Я отметил две пропущенные закрывающие скобки. Какие выражения вы хотите закрыть ) зависит от логики, которую вы хотите реализовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .