Формула не работает, не может найти ошибку в формуле

-1

Я уверен, что это невероятно простой ответ, но я часами просматривал эту формулу и не могу понять ошибку. По сути, я хочу, чтобы формула выполнялась, если F3 = «Первокурсник», затем проверьте, не является ли U3 пустым, пройдите N3 и введите значение, если U3 не пусто, пройдите U3. Затем, если F3! = «Первокурсник» и V3 пусто, пройдите S3, если V3 не пусто, используйте V3. Может быть, есть менее сложный способ сделать это, но я не уверен.

=IF(ISBLANK($U3)=TRUE,IF($F3="Freshman",IF(N3>=Lists!$H$7,3,IF(N3>=Lists!$H$6,2.5,IF(N3>=Lists!$H$5,2,IF(N3>=Lists!$H$4,1.5,IF(N3>=Lists!$H$3,1,IF(N3>=Lists!$H$2,0.5,IF(N3>Lists!$H$8,0,""))))))),IF(U3>=Lists!$I$7,3,IF(U3>=Lists!$I$6,2.5,IF(U3>=Lists!$I$5,2,IF(U3>=Lists!$I$4,1.5,IF(U3>=Lists!$I$3,1,IF(U3>=Lists!$I$2,0.5,IF(U3>=Lists!$I$8,"")))))))),IF(ISBLANK($V3)=TRUE,IF(S3>=Lists!$H$7,3,IF((S3>=Lists!$H$6,2.5,IF(S3>=Lists!$H$4,1.5,IF(S3>=Lists!$H$3,1,IF(S3>=Lists!$H$2,0.5,IF(S3>Lists!$H$8,0,"")))))),IF(V3>=Lists!$I$7,3,IF(V3>=Lists!$I$6,2.5,IF(V3>=Lists!$I$5,2,IF(V3>=Lists!$I$4,1.5,IF(V3>=Lists!$I$3,1,IF(V3>=Lists!$I$2,0.5,IF(V3>=Lists!$I$8,0,"")))))))))

Я знаю, что есть много вложенных if, что, вероятно, и сбивает меня с толку. Если кто-то может помочь, это будет высоко ценится.

user3295539
источник
Как это не работает? Это возвращает неправильное значение? Ошибка?
Raystafarian
Excel открывает всплывающее окно, в котором говорится, что они обнаружили проблему с моей формулой.
user3295539
Если вы опубликуете пример данных и немного опишете, логика, стоящая за е, может помочь вам написать простую формулу для заметок.
Máté Juhász
Логика, лежащая в основе формулы, состоит в том, что есть 4 столбца: один с введенным пользователем GPA для старшей школы, один с введенным пользователем GPA для колледжа, один с подтвержденным университетом GPA и один с подтвержденным университетом GPA. Мы не получаем подтвержденные университетом средние баллы в течение нескольких недель, и поэтому, когда они будут получены, мне нужна формула для обновления значений. (выше 3,7 = 3, все, что ниже 2,0 = 0). Есть одна колонка с надписью «Первокурсник», «Второкурсник» и т. Д. Если это «Первокурсник», мне нужен средний балл для средней школы. Имеет ли это смысл?
user3295539

Ответы:

0

Я положил вашу формулу в блокнот. Затем для каждого условия я начал новую строку и использовал вкладку, чтобы отсортировать различные функции IF. Это облегчает отладку вашей проблемы. Я не знаю, как загрузить файл, к сожалению. Я обнаружил, что последнее ")" слишком много и что в формуле есть некоторые несоответствия.

Например, во втором листинге последний оператор заканчивается S3 & gt; = lists $ I $ 8, ""), тогда как в других листингах он заканчивается S3 & gt; = lists $ I $ 8,0, "").

В третьем листинге IF (U3 & gt; = Lists! $ H $ 4,2 отсутствует.

Если вы хотите, я могу отправить вам файл, чтобы увидеть для себя

Bart Peters
источник
0

Вот оно в кодированной записи

=IF(ISBLANK($U2)=TRUE,          'if condition #1
 IF($F3="Freshman",             '#1 true condition
  IF(N3>=Lists!$H$7,3,
   IF(N3>=Lists!$H$6,2.5,
    IF(N3>=Lists!$H$5,2,
     IF(N3>=Lists!$H$4,1.5,
      IF(N3>=Lists!$H$3,1,
       IF(N3>=Lists!$H$2,0.5,
        IF(N3>Lists!$H$8,0,"")
       )
      )
     )
    )
   )
  ),
   IF(S3>=Lists!$I$7,3,            '#1 false condition
    IF(S3>=Lists!$I$6,2.5,
     IF(S3>=Lists!$I$5,2,
      IF(S3>=Lists!$I$4,1.5,
       IF(S3>=Lists!$I$3,1,
        IF(S3>=Lists!$I$2,0.5,
         IF(S3>=Lists!$I$8,"")
        )
       )
      )
     )
    )
   )
  ),                              'everything before the comma is one function
   IF(ISBLANK($V2)=TRUE,          'new #2 if condition
    IF(U3>=Lists!$H$7,3,          '#2 true condition
     IF((U3>=Lists!$H$6,2.5,
      IF(U3>=Lists!$H$4,1.5,
       IF(U3>=Lists!$H$3,1,
        IF(U3>=Lists!$H$2,0.5,
         IF(Lists!$H$8,0,"")      'here is an if without a test condition
        )
       )
      )
     )
    ),
     IF(V3>=Lists!$I$7,3,         '#2 false condition
      IF(V3>=Lists!$I$6,2.5,
       IF(V3>=Lists!$I$5,2,
        IF(V3>=Lists!$I$4,1.5,
         IF(V3>=Lists!$I$3,1,
          IF(V3>=Lists!$I$2,0.5,
           IF(V3>=Lists!$I$8,0,"")
          )
         )
        )
       )
      )
     )
    )
   )
  )
Raystafarian
источник
В этом формате вам не хватает IF(U3>=Lists!$H$5 состояние
Engineer Toast
Кроме того, вы имели в виду IF(Lists!$H$8,0,"") или же IF(U3>=Lists!$H$8,0,"") ?
Engineer Toast
Кроме того, вы имели в виду IF(N3>Lists!$H$8,0,"") или же IF(N3>=Lists!$H$8,0,"")?
Engineer Toast
Это должны быть IF (U3 & gt; Lists! $ H $ 8,0, "") и IF (N3 & gt; Lists! $ H $ 8,0, "").
user3295539
0

Вот альтернатива: уменьшить вложенность.

Я бы порекомендовал вспомогательные столбцы, но это не обязательно. С помощью вспомогательных столбцов формулы будут выглядеть следующим образом:

[N]: {=IFERROR(CHOOSE(LARGE(ROW($H$2:$H$7)*(N3>=$H$2:$H$7),1)-1,0.5,1,1.5,2,2.5,3),IF(N3>=$H$8,0,""))}
[S]: {=IFERROR(CHOOSE(LARGE(ROW($I$2:$I$7)*(S3>=$I$2:$I$7),1)-1,0.5,1,1.5,2,2.5,3),IF(S3>=$I$8,0,""))}
[U]: {=IFERROR(CHOOSE(LARGE(ROW($H$2:$H$7)*(U3>=$H$2:$H$7),1)-1,0.5,1,1.5,2,2.5,3),IF(U3>=$H$8,0,""))}
[V]: {=IFERROR(CHOOSE(LARGE(ROW($I$2:$I$7)*(V3>=$I$2:$I$7),1)-1,0.5,1,1.5,2,2.5,3),IF(V3>=$I$8,0,""))}

=IF(ISBLANK($U3),IF($F3="Freshman",[N],[U],IF(ISBLANK($V3),[S],[V])))

Кроме того, если у вас есть место в ваших данных, я бы порекомендовал добавить значения 0.5 to 3 step 0.5 В диапазоне J2:J7, Это может облегчить обслуживание, так как вы можете изменить значения - если есть необходимость - не касаясь формул. Если вы сделали, формулы могут быть:

[N]: {=IFERROR(INDEX($J$2:$J$8,LARGE(ROW($H$2:$H$7)*(N3>=$H$2:$H$7),1)-1),IF(N3>=$H$8,0,""))}
[S]: {=IFERROR(INDEX($J$2:$J$8,LARGE(ROW($I$2:$I$7)*(S3>=$I$2:$I$7),1)-1),IF(S3>=$I$8,0,""))}
[U]: {=IFERROR(INDEX($J$2:$J$8,LARGE(ROW($H$2:$H$7)*(U3>=$H$2:$H$7),1)-1),IF(U3>=$H$8,0,""))}
[V]: {=IFERROR(INDEX($J$2:$J$8,LARGE(ROW($I$2:$I$7)*(V3>=$I$2:$I$7),1)-1),IF(V3>=$I$8,0,""))}

=IF(ISBLANK($U3),IF($F3="Freshman",[N],[U],IF(ISBLANK($V3),[S],[V])))

По всей вероятности, они могут быть улучшены в дальнейшем. Я надеюсь, что я хотя бы дал вам идею, хотя.

Engineer Toast
источник