excel 使用 if 语句在 countif 函数中产生结果

excel 使用 if 语句在 countif 函数中产生结果

我创建了一个表格“tblVehicleDailyUse”,其中(除其他内容外)列出了日期、车辆 ID 和驾驶员姓名。使用此表中的数据,我试图填充一个从单元格 B4 开始的矩阵,其中列出了每辆车以及过去 30 天内驾驶该车辆次数最多的驾驶员。下面的等式进入单元格 D4。

我尝试使用以下公式,但这只会在数组的每一行中返回 #VALUE!。我还尝试使用静态驱动程序名称——但都无济于事。

=MAX(COUNTIF(IF((tblVehicleDailyUse[[#Data],[CCH VID]]=$B4)(tblVehicleDailyUse[[#数据],[日期]]<=TODAY())(tblVehicleDailyUse[[#数据],[日期]]>=TODAY()-30), tblVehicleDailyUse[[#数据],[驾驶员]],0), tblVehicleDailyUse[[#数据],[驾驶员]]))

我做错了什么,这有可能吗?谢谢。

示例数据:

日期 视频识别 司机
2022 年 1 月 10 日 A001 约翰·多伊
2022 年 1 月 10 日 B015 山姆·斯莱德
2022 年 1 月 10 日 C003 无名氏
2022 年 1 月 10 日 ABC001 汤姆·史密斯
2022 年 1 月 11 日 A001 约翰·多伊
2022 年 1 月 11 日 A012 山姆·斯莱德
2022 年 1 月 11 日 B015 无名氏
2022 年 1 月 11 日 ABC001 汤姆·史密斯
2022 年 1 月 12 日 C003 无名氏
2022 年 1 月 12 日 A001 无名氏
2022 年 1 月 12 日 C003 山姆·斯莱德

答案1

好的。那么用另一种方法解决这个问题。

在驾驶员表中创建了一个字段“CountByVehicle”。此字段包含以下公式:

=SUM(IF((tblVehicleDailyUse[[#Data],[CCH VID]]=$B$4)*(tblVehicleDailyUse[[#Data],[Driver]]=[@[DRIVER LIST]]),1,0))

这将计算每个驾驶员在相关车辆的 tblVehicleDailyUse 表中出现的次数,该次数仍存储在 $B$4 中。然后我可以使用以下公式:

=INDEX(tblDriverList[[#全部],[DRIVER_LIST]],MATCH(MAX(tblDriverList[[#全部],[CountByVeh]]),tblDriverList[[#全部],[CountByVeh]],0))

这将返回列表中 tblVehicleDailyUse 中条目最多的(第一个)驾驶员姓名。有点笨拙,但对于我的目的而言是可以接受的。

目前这解决了我的问题。但这一次只能查看一辆车;如果我需要更全面的解决方案,那就有问题了。

相关内容