Excel에서 if 문을 사용하면 countif 함수가 생성됩니다.

Excel에서 if 문을 사용하면 countif 함수가 생성됩니다.

나는 날짜, 차량 ID 및 운전자 이름을 나열하는 "tblVehicleDailyUse" 테이블을 만들었습니다. 이 표의 데이터를 사용하여 셀 B4부터 시작하여 각 차량과 지난 30일 동안 해당 차량을 가장 많이 운전한 운전자를 나열하는 행렬을 채우려고 합니다. 아래 방정식은 D4 셀에 입력됩니다.

다음 방정식을 사용하려고 시도했지만 #VALUE만 반환됩니다! 배열의 각 행에 또한 정적 드라이버 이름을 사용해 보았지만 모두 소용이 없었습니다.

=MAX(COUNTIF(IF((tblVehicleDailyUse[[#Data],[CCH VID]]=$B4)(tblVehicleDailyUse[[#데이터],[날짜]]<=TODAY())(tblVehicleDailyUse[[#Data],[Date]]>=TODAY()-30), tblVehicleDailyUse[[#Data],[Driver]],0), tblVehicleDailyUse[[#Data],[Driver]]))

내가 무엇을 잘못했습니까? 아니면 이것이 가능합니까? 감사해요.

예시 데이터:

날짜 영상 운전사
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) )

이는 $B$4에 여전히 저장되어 있는 문제의 차량에 대한 tblVehicleDailyUse 테이블에 각 운전자가 나타나는 횟수를 합산합니다. 그런 다음 다음 공식을 사용할 수 있습니다.

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

그러면 문제의 차량에 대해 tblVehicleDailyUse에 가장 많은 항목이 있는 목록의 (첫 번째) 운전자 이름이 반환됩니다. 조금 투박하지만 내 목적에는 허용됩니다.

현재 내 문제가 해결되었습니다. 그러나 이것은 한 번에 하나의 차량만 살펴봅니다. 좀 더 글로벌한 솔루션이 필요하다면 문제가 될 수 있습니다.

관련 정보