Сценарий: У меня есть две именованные таблицы в Excel с общим столбцом "дата":
- "MonthlySheet [дата]"
- "WorkShiftAll [date] "
Давайте рассмотрим пример набора данных:
Я пытаюсь проиндексироватьдинамически все записи из WorkShiftAll[date]
, которые находятся между двумя датами, определенными в двух разных именованных ячейках: PayPeriodStartDate
и PayPeriodEndDate
в MonthlySheet[date]
с использованием этой формулы (Shift + Ctrl + Enter):
=IF(ROWS(C$10:C10)>(SUMPRODUCT((WorkShiftAll[date]>=PayPeriodStartDate)*(WorkShiftAll[date]<=PayPeriodEndDate))),"",INDEX(workShiftsDateRange,SMALL(IF((WorkShiftAll[date]>=PayPeriodStartDate)*(WorkShiftAll[date]<=PayPeriodEndDate),ROW(WorkShiftAll[date])-ROW(WorkShiftAll[date])+1),ROWS(C$10:C10))))
, где C10
- это первое пустое место в таблице MonthlySheet
.И (SUMPRODUCT((WorkShiftAll[date]>=PayPeriodStartDate)*(WorkShiftAll[date]<=PayPeriodEndDate)))
- это формула, которую я использовал, чтобы подсчитать, сколько записей соответствует моим критериям (между двумя датами)
ПРОБЛЕМА: Две записи успешно перечислены за октябрь, так как они записаныоднако в наборе данных он повторяет МАЛЕНЬКИЙ (первая запись) дважды!не пятница 26 октября и 29 октября.
Когда я использую диапазон вместо столбца для адресации INDEX, он работает !!например, если я использую:
INDEX(**WorkShifts!A2:A14**,SMALL(IF((WorkShiftAll[date]>=PayPeriodStartDate)
... Это работает, и появляются две записи, 26 и 29 октября.Но мне нужно, чтобы мой диапазон был динамическим, поэтому я хочу использовать таблицу.Должен ли я преобразовать его в диапазон?а другого пути нет?