
Я создал таблицу "tblVehicleDailyUse", в которой (помимо прочего) перечислены дата, идентификатор транспортного средства и имя водителя. Используя данные из этой таблицы, я пытаюсь заполнить матрицу, начинающуюся с ячейки B4, перечисляя каждое транспортное средство и водителя, который управлял рассматриваемым транспортным средством больше всего за последние 30 дней. Уравнение ниже помещается в ячейку D4.
Я попытался использовать следующее уравнение, но оно просто возвращает #ЗНАЧЕНИЕ! в каждой строке массива. Я также пробовал использовать статическое имя драйвера — все безрезультатно.
=МАКС(СЧЕТЕСЛИ(ЕСЛИ((таблицаЕжедневногоИспользованияТранспортногоСредства[[#Данные],[CCH VID]]=$B4)(tblVehicleDailyUse[[#Данные],[Дата]]<=СЕГОДНЯ())(tblVehicleDailyUse[[#Данные],[Дата]]>=СЕГОДНЯ()-30), tblVehicleDailyUse[[#Данные],[Водитель]],0), tblVehicleDailyUse[[#Данные],[Водитель]]))
Что я сделал не так или это вообще возможно? Спасибо.
Пример данных:
ДАТА | ВИД | ВОДИТЕЛЬ |
---|---|---|
01/10/2022 | А001 | Джон Доу |
01/10/2022 | Б015 | Сэм Слэйд |
01/10/2022 | С003 | Джейн Доу |
01/10/2022 | АВС001 | Том Смит |
01/11/2022 | А001 | Джон Доу |
01/11/2022 | А012 | Сэм Слэйд |
01/11/2022 | Б015 | Джейн Доу |
01/11/2022 | АВС001 | Том Смит |
01/12/2022 | С003 | Джейн Доу |
01/12/2022 | А001 | Джейн Доу |
01/12/2022 | С003 | Сэм Слэйд |
решение1
Хорошо. Итак, решили это по-другому.
Создал поле в таблице Driver Table, "CountByVehicle". Это поле содержит формулу:
=СУММА(ЕСЛИ((таблицаЕжедневногоИспользованияТранспортногоСредства[[#Данные],[CCH VID]]=$B$4)*(таблицаЕжедневногоИспользованияТранспортногоСредства[[#Данные],[Водитель]]=[@[СПИСОК ВОДИТЕЛЕЙ]]),1,0))
Это суммирует количество раз, когда каждый водитель появляется в таблице tblVehicleDailyUse для рассматриваемого транспортного средства, все еще хранящегося в $B$4. Затем я могу использовать формулу:
=ИНДЕКС(таблицаСписокВодителей[[#Все],[СПИСОК_ВОДИТЕЛЕЙ]],ПОИСКПОЗ(МАКС(таблицаСписокВодителей[[#Все],[КоличествоТранспортныхСредств]]),таблицаСписокВодителей[[#Все],[КоличествоТранспортныхСредств]],0))
Это возвращает (первое) имя водителя в списке с наибольшим количеством записей в tblVehicleDailyUse для рассматриваемого транспортного средства. Немного неуклюже, но приемлемо для моих целей.
В настоящее время это решает мою проблему. Но это рассматривает только одно транспортное средство за раз; проблематично, если мне понадобится более глобальное решение.