Формула DMAX не работает должным образом

#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] .