Excel에 이 간단한 데이터 테이블이 있는데 오늘의 총액을 찾으려면 수식이 필요합니다. 따라서 TODAY() 날짜에 대해 00:00에서 23:59 사이에 해당하는 모든 금액의 합계가 됩니다. 어떻게 해야 하나요?
상황을 약간 복잡하게 만들기 위해 소스 스프레드시트(아래 그림)에 더 이상 열을 추가할 수 없습니다. 모든 수학은 별도의 시트에서 수행됩니다. 따라서 일부 도우미 번호/중간 단계를 추가하기 위해 각 행에 다른 열을 추가할 수 없습니다. 이상적으로는 별도의 시트에 있는 하나의 셀에 연결할 수 있는 하나의 큰 공식이 될 것입니다.
예시 데이터:
답변1
가장 먼저 파악해야 할 것은 날짜가 텍스트인지 아니면 날짜로 표시하기 위해 Excel에서 형식화된 숫자인지입니다. 이는 매우 중요한 차이점이며 수식에 내장된 Excel을 더 많이 사용할 수 있으므로 나중에 사용하기를 원합니다. 몇 가지 가능한 테스트는 다음과 같습니다.
- =ISTEXT(A2)
- =ISNUMBER(A2)
- 셀 서식을 일반으로 변경하고 표시된 내용이 변경되는지 확인하세요.
이 솔루션을 위해 날짜는 숫자로 간주됩니다. 그렇지 않은 경우 텍스트 날짜를 숫자/Excel 형식으로 변환하는 방법에 대한 많은 질문/답변이 있습니다.
Excel의 시간/날짜 이해
Excel은 날짜를 정수로 저장합니다. 1900년 1월 0일 이후의 일수를 계산하는 것입니다. 따라서 1은 1900년 1월 1일입니다. (기준 연도를 1905년으로 생각하지만 틀릴 수도 있습니다.) 따라서 Excel의 모든 날짜는 우리가 익숙한 방식으로 표시하기 위해 특수 형식이 적용된 단순한 정수입니다. 다른 시간은 하루의 %로 저장되거나 하루의 소수점을 선호하는 경우 저장됩니다. 0.5는 반나절 또는 점심을 나타냅니다. 따라서 혼합 시간 날짜에서 날짜만 찾아야 하는 경우 정수 부분만 제거해야 합니다. 반대로 시간이 필요하다면 소수 부분만 제거하면 됩니다.
옵션 1 총생산
SUMPRODUCT
배열과 같은 계산을 수행하는 일반 함수입니다. 따라서 범위 참조를 대략적인 데이터로 제한하고 전체 열/행 참조를 사용하지 않으려고 합니다. 나중에 이 작업을 수행하게 되면 빈 셀에 대한 불필요한 계산을 과도하게 수행하여 시스템을 수렁에 빠뜨릴 수 있습니다.
=SUMPRODUCT((INT($A$2:$A$12)=TODAY())*$B$2:$B$12)
Note는 TODAY()
일시적인 기능입니다. 즉, 기능에 영향을 미치지 않더라도 시트의 내용이 변경될 때마다 다시 계산됩니다. 비휘발성 함수(대부분의 일반 함수)는 영향을 미치는 변경 사항이 발생할 때만 다시 계산됩니다. 결과적으로 휘발성 함수를 많은 셀에 복사하면 시트의 내용이 변경/입력될 때마다 컴퓨터가 느려질 수 있습니다.
옵션 2 - SUMIFS
SUMIFS
걱정 없이 전체 열 참조를 사용할 수 있는 일반 공식이며 이 상황을 처리하는 방법에 대해 제가 선호하는 옵션입니다. 이 공식은 다음과 같은 형식을 취합니다.
SUMIFS(Range to be summed, range for condition 1, Condition 1 check, ..., range for condition n, Condition n check)
따라서 귀하의 경우 하루의 시작과 끝을 확인하려고 하므로 수식은 조건 확인을 거쳐 다음과 같이 나타나야 합니다.
=SUMIFS($B$2:$B$12,$A$2:$A$12,">="&TODAY(),$A$2:$A$12,"<"&TODAY()+1)