[최적화] 진짜 간단한 수식인데 너무 느립니다.
함수/공식
작성자
3과 4사이
작성일
2024-11-08 09:47
조회
406
안녕하세요 엑셀뉴비 3과4사이 입니다
작업은 어제 완료했는데 계산 속도가 너무 느려서 다른 방법이 없을까 싶어 질문드립니다.
시트 구조 : 1, 2, 12월 춘천의 각종 기상데이터를 1시간별로 기록한 데이터입니다.
C~H열, AR열을 제외한 다른 열은 기상청의 데이터를 그대로 가져온 열입니다.
작업 목표 : 하루 중 한시간이라도 적설량(AC열)이 기록돼있으면(빈칸이 아닌 것) 그날에 해당하는 모든행(AR열)에 "적설" 입력
원래는 1~12월 모든 날짜에 대해 동계도 판별하고, 적설도 판별했었는데
계산이 너무 느려서 바이너리 파일로도 바꾸고 1, 2, 12월 데이터만 남겨뒀습니다
모든 행을 다 비교하는 수식의 구조가 문제인듯한데 어떻게 최적화해야될지 모르겠네요
엑셀은 2010버젼을 사용중입니다.
매번 도와주셔서 감사합니다.
전체 18,535
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
![]() ![]() |
![]() ![]() |
2022.02.03 | 575 | 610151 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 35598
|
![]() ![]() |
2021.10.28 | 310 | 35598 |
78587 | 기능/도구 |
New 클립보드 오류
![]() ![]() |
![]() |
11:25 | - | 7 |
78586 | 함수/공식 |
New (초보 질문) 15분별-데이터를 1시간별-데이터로 SUMIFS 하는데, 일부 오류 발생 구간이 있습니다.
![]() ![]() ![]() |
![]() |
09:48 | - | 22 |
78584 | 구글시트 |
New 같은 값에 색으로 표시하기
![]() ![]() |
![]() |
09:24 | - | 31 |
78582 | 함수/공식 |
New 조건 함수 의 관한 문의
![]() ![]() ![]() |
![]() |
2025.05.13 | - | 76 |
78580 |
New 날짜와 시간 분할 방법 알려 주세요
![]() ![]() ![]() |
![]() |
2025.05.13 | - | 72 | |
78575 | VBA |
New 엑셀 재고관리 프로그램 문의드립니다..
![]() ![]() |
![]() |
2025.05.13 | - | 101 |
78570 | 대시보드 |
New 대시보드에 표 형식으로 표현도 가능한가요?
![]() ![]() |
![]() |
2025.05.12 | - | 100 |
78569 | 함수/공식 |
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기
(5)
![]() |
![]() |
2025.05.12 | - | 119 |
78565 | 함수/공식 |
New 검색보고서 만들기 질문드립니다.
![]() ![]() |
![]() |
2025.05.12 | - | 97 |
78563 | VBA |
New VBA 수정 부탁드립니다. ㅠ
(8)
![]() |
![]() |
2025.05.12 | - | 98 |
78560 | 함수/공식 |
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!....
![]() ![]() ![]() |
![]() |
2025.05.12 | - | 56 |
78559 | 파워쿼리/피벗 |
New 엑셀 자동화 질문 입니다...
![]() ![]() |
![]() |
2025.05.12 | - | 82 |
78555 | 함수/공식 |
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다
![]() ![]() |
![]() |
2025.05.12 | - | 52 |
78554 | 함수/공식 |
New 변동하는 절대참조값 적용
(6)
답변완료
![]() |
![]() |
2025.05.12 | - | 75 |
78553 | 대시보드 |
New 대시보드_슬라이서 자동으로 눌러지게 하는방법
![]() ![]() |
![]() |
2025.05.12 | - | 58 |
78548 | 대시보드 |
New 어떤 엑셀을 적용해야하는 지 문의드립니다!
(1)
![]() |
![]() |
2025.05.11 | - | 77 |
78546 | 함수/공식 |
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다!
![]() ![]() |
![]() |
2025.05.11 | - | 100 |
78544 | 함수/공식 |
New 중복값 제거 함수에 관하여
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 86 |
78543 | 함수/공식 |
New 데이터 추출 및 정렬관련 초보질문
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 83 |
78540 | 함수/공식 |
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다.
![]() ![]() |
![]() |
2025.05.10 | - | 69 |
78536 | 함수/공식 |
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요
![]() ![]() |
![]() |
2025.05.10 | - | 72 |
78535 | 기능/도구 |
New 엑셀로 25x25 인쇄가 가능한가요?
(1)
![]() |
![]() |
2025.05.10 | - | 57 |
78534 | 파워쿼리/피벗 |
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때.
![]() ![]() |
![]() |
2025.05.10 | - | 74 |
78531 | 차트/그래프 |
New 엑셀 차트 데이터테이블
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 84 |
78530 | 구글시트 |
New 구글 스프레드시트 함수 관련 질문입니다.
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 73 |
78528 | 구글시트 |
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다.
(3)
![]() |
![]() |
2025.05.09 | - | 77 |
78525 | 문서서식 |
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다!
![]() ![]() |
![]() |
2025.05.09 | - | 103 |
78520 | 기능/도구 |
New 하이퍼링크 명칭 해제
(1)
![]() |
![]() |
2025.05.09 | - | 61 |
78518 | 피벗테이블 |
New 피벗테이블 관련 화살표 질문
![]() ![]() |
![]() |
2025.05.09 | - | 57 |
78516 | 함수/공식 |
New 호봉산정 엑셀 문의드립니다.
![]() ![]() ![]() |
![]() |
2025.05.08 | - | 68 |
@3과 4사이 님 카운트이프함수를 굳이 쓸 이유가 없어보입니다.
어차피 같은 테이블 안에 날짜와 시간이 매칭되어 있는 셀에다 적설 여부를 확인하는 것이니,
그냥 AC열이 공란이 아니라면 적설, 공란이라면 공란 이렇게 수식을 짤 수 있지 않을까요
일단 전체 범위를 테이블로 지정하거나 AC열에 대해 이름관리자를 통해 이름 정의를 해주시구요,
보통 그냥 테이블로 한번에 지정하시면 아마 표1[적설(cm)] 이렇게 지정이될거에요
AR열에 IF(표1[적설(cm)]="","","적설") 이렇게 하면 되지 않을까요
@고준혁 님 하나의 행이 1시간인데
적설일 1시간이라도 기록됐으면 24개의 행 그러니까 하루를 전부 적설로 기록해야되서 그렇습니다.
@3과 4사이 님 수많은 행마다 전체 열을 평가하는 게 로드가 많이 걸리므로,
결국 하루 24시간이 온전히 확보되도록 현재 행 기준으로 앞뒤로 24행씩 48행을 점검하면 될 듯 합니다.
AR2 =IF(COUNTIFS(OFFSET(C2,-IF(ROW()<24,23-(25-ROW()),24),0,48),C2, OFFSET(AC2,-IF(ROW()<24,23-(25-ROW()),24),0,48), "<>")>0, "적설", "")
@원조백수 님 어차피 순서대로 정렬돼있으니 위아래로 2일치만 비교하는 방법이 있었군요
offset 함수는 알고있는데 막상 쓸때되면 생각이 안나더라고요
이유는 모르겠지만 주신건 24행에서 오류가 나더라고요
AR2 = if( countifs( offset( C2, -24, 0, 48), C2, offset( AC2, -25, 0, 48), "<>") >0, "적설", "")
이렇게 쓰면 25행부터 작동하고
AR2=IF(COUNTIFS(IF(ROW()<25, OFFSET(C2, 2-ROW(),0,48), OFFSET(C2,-24,0,48)), C2, IF(ROW()<25, OFFSET(AC2, 2-ROW(),0,48),OFFSET(AC2,-24,0,48)), "<>")>0, "적설", "")
이렇게 쓰면 나중에 알아볼 수 있을지 걱정이네요 ㅎㅎ
감사합니다
@3과 4사이 님 수식 수정했어요.
너무 복잡하면 쉽게...
앞에 23줄의 빈 줄이 있다고 대세에 영향을 안 미치니까,,, 표제목 앞으로 23줄 삽입
그리고 나면
AR25 =IF(COUNTIFS(OFFSET(C25,-24,0,48),C25, OFFSET(AC25,-24,0,48), "<>")>0, "적설", "")
@3과 4사이 님
저라면...... 피벗테이블이나 파워쿼리로... 룩업테이블만들겠습니다.. 날짜별로 적설량 뽑아놓으면 되죠..
(날짜열이 텍스트로 되어 있네요....... 날짜열전체 선택후, 텍스트나누기 들어갔다가-바로 나오기 하세요..)
@마법의손 님 테이블로도 만들어봤는데
적설일을 판별하고 그날의 해당 시간대의 기온이나 일사량 같은 값의 10년치 평균값을 구해야되는 뒷작업이 남아있어서
그걸 어떻게 가져다쓰는지 모르겠더라고요 ㅎㅎ
@3과 4사이 님 감사합니다~