SQL의 CASE 문을 Excel의 IF 문으로 표현
할 수 있는 선배는 간단하게 말해.
「엑셀로 대답 만들고 있어! 그것과 비교하면 좋으니까!」
「네, 알았습니다(엑셀로 어떻게 만들지요)」
엑셀의 방법을 선배에게 질문하는 것은 과연 참을 수 없기 때문에, 스스로 어떻게든 합니다. 이번은 CASE 문과 같은 처리를 표현합니다. IF문의 중첩으로 합니다.
SQL의 CASE문으로 부여한 값이, 예를 들어 GROUP BY의 키가 되어 있거나 하는 경우, 엑셀로 표현하려면 IF 조건 분기로 작업열을 작성하고 나서, 피벗 하는 되어 모의 실행 결과를 만듭니다 .
SQL의 CASE 문 예
예를 들어,
"학생 번호, 이름, ……"CSV 파일이 있습니다.
▼테이블명:KOHUN_ASUKA_CLASS
학생 번호(열명:STUDENT_ID)
이름(열 이름: STUDENT_NAME)
0010
卑弥呼
0011
소가마코
0012
성덕 태자
0013
오노 여동생
0014
중신 낫다리
0015
중대형 황자
0016
천무천황
0017
인덕천황
수학 여행에 가기 때문에, 1반·2반으로 나누고 싶습니다.
학생 번호가 0010~0013이 1반,
0014~0017이라면 2반으로 하기로 했습니다(열명:GROUP_NUM)
CASE.sqlSELECT
STUDENT_ID,
STUDENT_NAME,
CASE
WHEN STUDENT_ID BETWEEN '0010' AND '0013' THEN '1'
WHEN STUDENT_ID BETWEEN '0014' AND '0017' THEN '2'
ELSE '0'
END AS GROUP_NUM
FROM
KOHUN_ASUKA_CLASS
▼실행 결과
STUDENT_ID
STUDENT_NAME
GROUP_NUM
0010
卑弥呼
1
0011
소가마코
1
0012
성덕 태자
1
0013
오노 여동생
1
0014
중신 낫다리
2
0015
중대형 황자
2
0016
천무천황
2
0017
인덕천황
2
Excel의 조건 분기에서 CASE와 같은 일을합니다.
Excel의 A 열에 STUDENT_ID, B 열에 STUDENT_NAME, C 열에 GROUP_NUM을 출력합니다.
C2에 아래의 함수를 쓰고, 후에는 아래까지 자동으로 채우면 완성입니다.
IF.xlsx# GROUP_NUM
=IF(AND(0010<=A2,A2<=0013),"1"
,IF(AND(0014<=A2,A2<=0017),"2","0")
)
※Excel 자체의 셀 표시 형식(수치, 문자열 등)이 어긋나 있으면, 구하는 결과를 얻을 수 없는 경우가 있으므로, 거기는 조정해 주세요.
IF 함수 인수_Excel=IF(条件式, 真の場合, 偽の場合)
조건이 더 많을 때는?
조건이 늘어나도 중첩 된 "가짜 경우"에 수시로 추가하면 OK.
학생이 더 많아서 이럴 때,
0010~0013→1반
0014~0017→2반
0018~0021→3반
0022~0025→4반
IF_2.xlsx# GROUP_NUM
=IF(AND(0010<=A2,A2<=0013),"1"
,IF(AND(0014<=A2,A2<=0017),"2"
,IF(AND(0018<=A2,A2<=0021),"3"
,IF(AND(0022<=A2,A2<=0025),"4","0")
)
)
)
이상
Reference
이 문제에 관하여(SQL의 CASE 문을 Excel의 IF 문으로 표현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asasikibu/items/27649e3675aaf705e816
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SELECT
STUDENT_ID,
STUDENT_NAME,
CASE
WHEN STUDENT_ID BETWEEN '0010' AND '0013' THEN '1'
WHEN STUDENT_ID BETWEEN '0014' AND '0017' THEN '2'
ELSE '0'
END AS GROUP_NUM
FROM
KOHUN_ASUKA_CLASS
Excel의 A 열에 STUDENT_ID, B 열에 STUDENT_NAME, C 열에 GROUP_NUM을 출력합니다.
C2에 아래의 함수를 쓰고, 후에는 아래까지 자동으로 채우면 완성입니다.
IF.xlsx
# GROUP_NUM
=IF(AND(0010<=A2,A2<=0013),"1"
,IF(AND(0014<=A2,A2<=0017),"2","0")
)
※Excel 자체의 셀 표시 형식(수치, 문자열 등)이 어긋나 있으면, 구하는 결과를 얻을 수 없는 경우가 있으므로, 거기는 조정해 주세요.
IF 함수 인수_Excel
=IF(条件式, 真の場合, 偽の場合)
조건이 더 많을 때는?
조건이 늘어나도 중첩 된 "가짜 경우"에 수시로 추가하면 OK.
학생이 더 많아서 이럴 때,
0010~0013→1반
0014~0017→2반
0018~0021→3반
0022~0025→4반
IF_2.xlsx
# GROUP_NUM
=IF(AND(0010<=A2,A2<=0013),"1"
,IF(AND(0014<=A2,A2<=0017),"2"
,IF(AND(0018<=A2,A2<=0021),"3"
,IF(AND(0022<=A2,A2<=0025),"4","0")
)
)
)
이상
Reference
이 문제에 관하여(SQL의 CASE 문을 Excel의 IF 문으로 표현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asasikibu/items/27649e3675aaf705e816텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)