как использовать формулу для сравнения значений в массиве - PullRequest
0 голосов
/ 06 мая 2018

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

например: кокос, гк, 8 июня против кокос, гк, 2 июня значение ячейки E3 = -86

Может кто-нибудь помочь? спасибо

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 мая 2018

Для этого вам нужно несколько формул.

Каждая формула является формулой Array, поэтому вы должны использовать CTRL + SHIFT + ENTER при выходе из панели формул.

Вам необходимо найти значение последней записи для вашего поставщика и стиля, но прежде чем вы получите значение, вам нужно получить строку последней записи

=MAX(IF((A:A=A2)*(C:C=C2),ROW(A:A)-ROW(INDEX(A:A,1,1))+1))

возвращает номер строки, в которой поставщик и стиль соответствуют данным в A2 и C2.

Из строки вы можете вернуть значение, используя index

`index(D:D,MAX(IF((A:A=A2)*(C:C=C2),ROW(A:A)-ROW(INDEX(A:A,1,1))+1)),1)`

Строка товара, соответствующая критериям с максимальной датой, может быть найдена с помощью

=IFERROR(MATCH(1,(A2=A:A)*(MAX(IF(A:A=A2,B:B))=B:B)*(C2=C:C),0),ROW())

Значение с использованием индекса

index(D:D,IFERROR(MATCH(1,(A2=A:A)*(MAX(IF(A:A=A2,B:B))=B:B)*(C2=C:C),0),ROW()),1)

Сложите их вместе, чтобы сделать расчет

=index(D:D,MAX(IF((A:A=A2)*(C:C=C2),ROW(A:A)-ROW(INDEX(A:A,1,1))+1)),1)-index(D:D,IFERROR(MATCH(1,(A2=A:A)*(MAX(IF(A:A=A2,B:B))=B:B)*(C2=C:C),0),ROW()),1)
...