Я создал формулу в Excel, но она не работает. Это формула = IF(AND(G2 <41, L2 <41), 4, IF(AND(G2> 40, G2 <81), AND(L2> 40). , L2, <81), 5, ЕСЛИ (И (G2> 80, L2> 80), 6, ЕСЛИ (И (G2> 41, G2> 81) и (L2> 80), 7, ЕСЛИ (И (G2 <41, L2> 40) и (L2 <81), 8, ЕСЛИ (И (G2 <41, L2> 80), 9, ЕСЛИ (И (G2> 80, L2> 40) и (L2 <81), 3, ЕСЛИ (И (G2> 40, G2 <81), И (L2 <41), 2, ЕСЛИ (G2> 81, L2 <41), 1,0) Не могли бы вы помочь мне понять, как улучшить формула

2 ответа2

1

Поскольку AND является бинарным оператором, требующим по крайней мере два аргумента для проверки того, что оба являются истинными, четыре конструкции, имеющие единственные условия, являются неправильными:

AND(L2>80), AND(L2<81), AND(L2<81), AND(L2<41)

в таких конструкциях, как

AND(G2>41,G2>81)

это будет справедливо только в том случае, если G2> 81, поэтому первая часть, G2> 41, не нужна, если это не должно быть AND(G2> 41, G2 <81)

для неправильных конструкций, таких как

IF(AND(G2>41,G2<81),AND(L2>80)

Вы должны использовать

IF( AND( AND(G2>41,G2<81),L2>80))

Это сначала проверит, что G2> 41, а также <81, и, если это так, то также проверит,> L2 также> 80

1

Если вы возьмете однозначные числа, как предназначено для "результата" для истинных тестов, а затем отформатируете выражение (формулу) следующим образом:

=IF( 
  AND(G2<41,L2<41),4,
  # else
    IF(AND(G2>40,G2<81),AND(L2>40,L2<81),5,
    # else
      IF(AND(G2>80,L2>80),6,
      # else
        IF(AND(G2>41,G2>81),AND(L2>80),7,
        #else 
          IF(AND(G2<41,L2>40),AND(L2<81),8,
          # else
            IF(AND(G2<41,L2>80),9,
            #else
              IF(AND(G2>80,L2>40),AND(L2<81),3,
              #else 
                IF(AND(G2>40,G2<81),AND(L2<41),2,
                # else 
                  IF(G2>81,L2<41),1,
                  # else
                  0)

... тогда должно быть совершенно ясно, где существуют проблемы.

Обратите внимание, что IF() принимает ОДНО выражение и пытается установить, ИСТИНА он или ЛОЖЬ, возвращая соответствующий один из двух оставшихся аргументов.

Я бы порекомендовал, чтобы выражения / формулы были как можно более короткими - в противном случае очень легко закончить "беспорядок" - пример здесь.

Это очень похоже на ситуацию, в которой "умный код" используется для программирования, то есть когда лекарство - "ПОЦЕЛУЙ" (пусть это будет просто глупо).

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