1. 일반적인 경우
문자열 내 문자의 개수를 셀 때는
전체 길이에서 해당 문자를 공백으로 대체한 다음의 길이를 빼면 해당 문자의 개수가 됩니다.
아래와 같은 경우 0의 개수를 세려면
=len(c2)-len(substitute(c2,0,""))
라고 하면 됩니다.
0의 개수를 세면 6이 맞습니다.
2. 특수한 경우
이번 문제는 0이 있는 강좌수의 개수를 세는데, 0/0처럼 0이 두 번 들어간 강좌 수는 제외해야 합니다.
아래와 같은 경우 두 번째 줄의 26240의 0은 세면 안되므로, 0과 /0을 구분해서 계산해야 합니다.
두 번째 줄과 네 번째 줄은 /0이 한 번 있으므로 1이고,
세 번째 줄은 //0/0이 2번 있고, /0이 2번 있으므로 2이고,
다섯 번째 줄은 /0만 3번 있으므로 3이 답입니다.
3. 해법
문자 하나만 대체하면 숫자가 1이 줄지만
문자가 2개면 2가 0이 되어 2씩 줄어들게 되므로 /2를 해야 합니다.
만약 문자가 4개라면 /4를 해야죠.
그리고, 또 중요한 것은 /0/0은 /0이 2개인데 전체 개수에서 빼야 한다는 점입니다.
따라서, 전체 문자의 길이에서 /0을 공백으로 대체한 후의 길이를 빼서 2로 나누고,
전체 문자의 길이에서 /0/0의 개수를 제외한 길이를 빼서 4로 나눈 다음 2를 곱한 값을 빼야 합니다.
이것을 수식으로 표현하면
=(LEN(C3)-LEN(SUBSTITUTE(C3,"/0","")))/2-(LEN(C3)-LEN(SUBSTITUTE(C3,"/0/0","")))/4*2이 됩니다.
그런데 /4*2는 /2이고,
LEN(C3)가 앞 뒤에 -로 연결되어 있어서 0이 되므로 삭제하면
=-LEN(SUBSTITUTE(C3,"/0",""))/2+LEN(SUBSTITUTE(C3,"/0/0",""))/2가 되고,
앞뒤의 순서를 바꾸고 /2가 앞뒤에 있으므로 /2로 인수분해하면
=(LEN(SUBSTITUTE(C2,"/0/0",""))-LEN(SUBSTITUTE(C2,"/0","")))/2
이 됩니다.
'Excel' 카테고리의 다른 글
특정 기호 사이의 문자 찾기(1) (0) | 2024.04.07 |
---|---|
동점일 경우 다른 기준으로 순위 매기기 (0) | 2024.04.06 |
중복 값 제거하고 세기 (2) | 2024.03.26 |
텍스트내 금액 삭제하기 (0) | 2024.03.25 |
병합된 셀의 개수 세기 (0) | 2024.03.22 |