Я использовал два вспомогательных столбца , чтобы решить ваш случай без использования формулы массива. В приведенном выше примере я добавил некоторые тестовые данные, выделенные желтым цветом.
Helper1 использовал COUNTIF , чтобы вернуть номер индекса для номера бумажного рулона PRN
, если данныеотсортировано по ISSD Issued Date
в порядке возрастания:
=COUNTIF($A$2:A2,A2)
РЕДАКТИРОВАТЬ # 2 Если даты не отсортированы, используйте следующую формулу массива для возвратапорядковый номер:
=MATCH(B2,AGGREGATE(15,6,ISSD/(PRN=A2),ROW($A$1:INDEX($A:$A,COUNTIF(PRN,A2)))),0)+(COUNTIFS($A$2:A2,A2,$B$2:B2,B2)-1)
вы ДОЛЖНЫ нажмите Ctrl + Shift + Введите по окончанииформула в строке формул, иначе они не будут работать правильно. Затем вы можете просто перетащить формулу вниз, чтобы применить поперек.
Helper2 используется для создания уникальной ссылки на индекс за PRN
:
=A2&"#"&E2
QTYISD выданное количество рассчитывается следующим образом:
=IFERROR(INDEX([QTYRE],MATCH(A2&"#"&(E2-1),[Helper2],0)),INDEX(T_RollStock[QTYPUR],MATCH(A2,T_RollStock[PRN],0)))
формула пытается найти базу quantity returned
по предыдущей уникальной ссылке на индекс , и если ее нетпредыдущее возвращение, это должна быть первая ошибка, поэтому формула вернет quantity purchased
из второй таблицы справа по PRN
.
QTYUSD , что является количествомиспользуется просто разница между выданным и возвращенным:
=G2-D2
Перетащите формулы вниз, чтобы применить их поперек.