#excel-formula
#excel-формула
Вопрос:
У меня есть следующая формула с намерением найти самую последнюю дату в столбце «ДАТА» таблицы, которая соответствует входному инвентарному номеру в столбце «INV #»:
=IF(J6="","",IF(COUNTIF(RecordsTable[INV '#],J6)>0=TRUE,DMAX(RecordsTable,5,DMAX_Crit),"None"))
«J6» содержит целое число, номер инвентаря, который я ищу (например, 4040)
«DMAX_Crit» — это именованный диапазон, в котором я разместил свои критерии. Диапазон составляет 2 ячейки, и он выглядит следующим образом:
__AQ
1 INV #
2 = J6
Когда я помещаю инвентарный номер в «J6», я ожидаю, что это проверит и увидит, существует ли этот Inv. # в столбце «INV #», и если это так, то вернет самую последнюю дату, связанную с любым экземпляром этого инвентарного номера в столбце «ДАТА» (столбец 5).
На самом деле это возвращает дату из столбца «ДАТА», но не ту, которая связана с номером инвентаря, и даже не самую последнюю дату из всех записей, которые существуют в настоящее время.
В настоящее время у меня есть 3 записи в таблице:
INV #……ДАТА
4040…….10/15/2016
1310……..9/22/2016
1377……..9/22/2016
Если я добавлю несуществующий номер инвентаря в «J6», формула правильно вернет «None», однако, если я добавлю 4040, 1310 или 1377, формула вернет «22.9/2016», независимо от того, что я ввел — даже самую последнюю дату в списке. Я проверил, что мое значение в «J6» правильно передается в мой диапазон DMAX_Crit, и это так.
Что я здесь делаю не так? Спасибо за ваш вклад 🙂
Ответ №1:
Я не уверен, как вам удалось что-либо другое, чем 0
из вашей формулы (возможно, потому, что ваш макет данных не совсем такой, как я его интерпретировал — изображение может помочь), но, похоже, это делает то, что, я думаю, вы хотите:
=IF(J6="","",IF(COUNTIF(RecordsTable[INV '#],J6)>0=TRUE,DMAX(RecordsTable[#All],5,DMAX_Crit),"None"))
Разница заключается всего лишь в вставке [#All]
.