기출유형6회 계산작업 3번의 답지를 보니
If Mid(제품명, Len(제품명)-4,3) * 1 >= 100 then
이라고 되어있는데요.

이처럼 백단위 말고도 십단위로 있는데 mid함수로 3글자만 뽑는 이유가 뭔가요?
안녕하세요.
문제의 조건 중
제품명에서 “mg” 앞의 숫자가 100 이상이면
이라는 조건이 있습니다.
파일에서 제품명을 확인하면
건웅 로딘정 100mg
국제 구루메포미정 250mg
와 같이
문자열의 길이는 다르지만 모두 mg라는 글자 앞에 숫자가 2자리 혹은 3자리인 것을 확인할 수 있습니다.
예를 들어 제품명이
건웅 로딘정 100mg
라면,
Mid(제품명, Len(제품명)-4, 3)*1
- Len(제품명)-4 : 제품명 전체 길이에서 4를 뺍니다. 결과는 12-4 = 8입니다.
- MID(제품명, 8, 3) : 제품명의 8번째 자리에서 3글자를 추출합니다.
건웅 로딘정 100mg
공백을 포함해서 8번째 자리는 100의 1이고 여기서 3글자를 추출하면 100이 됩니다.
- 100 * 1 : 추출된 100은 문자입니다. 그래서 계산을 위해 *1을 수행하여 숫자로 만드는 것입니다.
이제 앞선 수식에 넣으면 아래와 같이 됩니다.
IF 100>=100 then
mg 앞의 숫자가 2글자인 경우에는 빈공백과 함께 " 90"이 추출되는데, 여기에 *1을 하면 90으로 인식됩니다.
좋은 하루 되세요.
-
관리자2022-01-26 12:32:43
안녕하세요.
문제의 조건 중
제품명에서 “mg” 앞의 숫자가 100 이상이면
이라는 조건이 있습니다.
파일에서 제품명을 확인하면
건웅 로딘정 100mg
국제 구루메포미정 250mg
와 같이
문자열의 길이는 다르지만 모두 mg라는 글자 앞에 숫자가 2자리 혹은 3자리인 것을 확인할 수 있습니다.
예를 들어 제품명이
건웅 로딘정 100mg
라면,
Mid(제품명, Len(제품명)-4, 3)*1
- Len(제품명)-4 : 제품명 전체 길이에서 4를 뺍니다. 결과는 12-4 = 8입니다.
- MID(제품명, 8, 3) : 제품명의 8번째 자리에서 3글자를 추출합니다.
건웅 로딘정 100mg
공백을 포함해서 8번째 자리는 100의 1이고 여기서 3글자를 추출하면 100이 됩니다.
- 100 * 1 : 추출된 100은 문자입니다. 그래서 계산을 위해 *1을 수행하여 숫자로 만드는 것입니다.
이제 앞선 수식에 넣으면 아래와 같이 됩니다.
IF 100>=100 then
mg 앞의 숫자가 2글자인 경우에는 빈공백과 함께 " 90"이 추출되는데, 여기에 *1을 하면 90으로 인식됩니다.
좋은 하루 되세요.