Понимание результатов формулы массива - PullRequest
2 голосов
/ 13 января 2020

Я пытаюсь починить / понять рабочую книгу, которую сделал старый сотрудник. Я использовал функцию «Формула оценки», но все еще не могу понять формулу.

Формула -

=IF(INDEX(Grp2.Customer.Table,Grp2.Cust.Numb,1)<INDEX(Year,1,Year.Numb),IF(INDEX(Grp2.Customer.Table,Grp2.Cust.Numb,2)>IF(Year.Numb=1,Laun.Yr.Start,INDEX(Year,1,Year.Numb-1)),1,0),0)

E65 = 1, E66 = 0. 

Но то, что я вижу, когда оцениваю формулу, подсказывает мне, что E65 и E66 должны быть одинаковыми.

Ячейка E66

enter image description here enter image description here

enter image description here enter image description here

Ячейка E65

enter image description here

enter image description here enter image description here

Ответы [ 2 ]

2 голосов
/ 13 января 2020

Формула массива предназначена для обработки данных в массиве или диапазоне:

Для различения guish формула массива и нормальная формула являются знаком {} в вашей формуле, например, если в нормальной формуле = A1 : A5 & B1: B5, поэтому в формуле массива будет {= A1: A5 & B1: B5}, если вы посмотрите на формулу

Для обычной формулы = A1: A5 & B1: B5 даст вам только A1 и A5, но в формуле массива даст вам на основе вашего диапазона следовать формуле массива, поэтому, если ваша формула массива находится в ячейке C1, ваш результат в C1 равен = A1 и B1, но если ваш диапазон для формулы массива находится в C1: C3, поэтому в C1 ваш результат будет A1 & B1, в C2 будет A2 & B2 и так далее. Но если вы отметите в каждой формуле в c1 upt c3, они будут одинаковыми.

Чтобы создать формулу массива, вы выбираете диапазон, в который вы будете помещать формулу массива, а в строке формул вы помещаете свою формулу, например, = A1 : A5 и B1: B5 и нажмите Ctrl + Shift + Enter.

1 голос
/ 13 января 2020

Я не могу помочь вам, кроме как упростить вашу формулу (ниже). Если вы можете предложить - не вкладывать эти операторы IF в другие ячейки или определенные формулы / имена - используйте Alt-Enter, чтобы поместить разрывы строк в очень длинные формулы - используйте функцию комментариев в Excel, чтобы «комментировать» формулу и почему оно написано так, как оно есть

Удачи в декодировании кода!

=IF(A<B,
   then IF(C > IF(D = 1, 
                  then E,
                  else F)
           then 1, 
           else 0),
   else 0)

Variable A = INDEX(Grp2.Customer.Table,Grp2.Cust.Numb,1)
Variable B = INDEX(Year,1,Year.Numb
Variable C = INDEX(Grp2.Customer.Table,Grp2.Cust.Numb,2)
Variable D = Year.Numb
Variable E =  Laun.Yr.Start
Variable F = INDEX(Year,1,Year.Numb-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...