EXCEL - VBA

텍스트로 된 수식의 값 구하기(1) - 곱하기만

별동산 2023. 7. 16. 09:29
반응형

 
아래와 같이 텍스트로 된 수식의 값을 구해보겠습니다.

텍스트수식1.xlsx
0.01MB

 
 
 

1. 한자릿수 곱하기

숫자1*숫자2에서 숫자 1이 1자리로 고정된 경우는
Left함수와 Mid함수를 이용해 값을 구할 수 있습니다.
 
Left 함수의 구문은 Left(텍스트, 가져올 문자수)이며, 
Mid함수의 구문은 Mid(텍스트, 시작 위치, 가져올 문자의 개수)입니다.
 
따라서, D2셀에 A3셀의 수식의 값을 구하는 수식을
=LEFT(A3,1)*MID(A3,3,10)라고 입력하면 됩니다.

위 수식에서 
LEFT(A3,1)은 A3셀에서 왼쪽 한 글자를 가져오는 것이므로 1이 되고,
MID(A3,3,10)은 A3셀에서 세 번째 위치부터 10개의 문자를 가져오라는 의미인데, A3셀을 보면 * 다음에 숫자 2만 있으므로 10이 아니라 1이라고 해도 되지만, 10이라고 해도 1개만 반환하기 때문에 숫자를 크게 입력한 것입니다.
 
따라서 위 수식의 결과는 1*2=2가 됩니다.
 
D3셀 오른쪽 아래 네모 모양의 채우기 핸들을 D5셀까지 끌어서 수식을 복사하면, 2, 135, 3318이라고 맞는 값이 구해집니다.

 

2. 두 자릿수 곱하기

위 화면과 같이 D3셀부터 D5셀까지 선택된 상태에서 채우기 핸들을 오른쪽으로 끌면
#VALUE! 에러가 발생합니다.

 
이것은 왼쪽 첫 번째 숫자와 세 번째 위치부터 문자를 가져와 곱하므로
E3셀의 경우 1**34가 돼서 값을 구할 수 없기 때문입니다.
 
따라서, E3셀의 수식을 *의 위치가 3이므로 왼쪽 숫자 2개와 네 번째부터 숫자를 가져와서 곱해야 합니다.
수식은 =LEFT(B3,2)*MID(B3,4,10)이 됩니다.

 
E3셀의 채우기 핸들을 E5셀까지 끌면 모두 제대로 된 값이 반환됩니다.

 
쉼표(,)를 넣기 위해 A열과 1행 사이를 클릭한 후 

 
홈 탭, 표시형식 그룹에서 ,(쉽표)를 누릅니다.

 
그러면 아래와 같이 천 단위마다 쉼표가 들어갑니다.

 

3. 무작위 수 곱하기

 

가. *의 위치 구하기

위와 같이 *의 위치가 다름에 따라 수식이 달라져야 하므로
*의 위치를 구해야 하는데, 이 때는 Find함수를 사용합니다.
 
Find함수의 구문은 Find(찾을 문자열, 텍스트, [시작 위치])입니다.
대괄호([ ]) 사이에 있는 시작 위치는 선택 사항이므로 입력하지 않아도 되며, 입력하지 않으면 1이 됩니다.
 
C3셀을 기준으로 Find함수를 적용해서 *의 위치를 구하는 수식을 만들면
=find("*",c3)가 됩니다.
 
다시 말해 C3셀에서 *의 위치를 찾아 그 위치를 반환하므로 2가 구해집니다.

 
F3셀의 수식을 F5셀까지 복사하면, *의 위치 2,3,4가 구해집니다.

 

나. *의 위치에 따라 숫자 분리하기

가와 나에서는 Left(A3,1) 또는 Left(B3,2)라고 두 번째 인수의 값을 직접 입력했는데,
Find함수를 이용한 수식을 이용해서 입력할 수 있습니다.
 
=find("*",c3)는 *의 위치를 반환하므로, Left함수를 사용할 때는 그것보다 1 작은 값으로 해야 합니다.
따라서, C3셀의 * 왼쪽의 숫자를 구하는 수식은
=LEFT(C3,FIND("*",C3)-1)이 됩니다.

 
 
* 오른쪽의 숫자는 *의 위치에 1을 더한 위치부터 10개를 가져오면 됩니다.
따라서, 수식은 =mid(c3,find("*",c3)+1,10)이 됩니다.

 
F3셀과 G3셀을 마우스로 끌어서 선택한 다음 G3셀의 채우기 핸들을 G5셀까지 끌어서 G5셀까지 수식을 복사합니다.
그러면 *의 왼쪽 숫자와 오른쪽 숫자가 분리돼서 표시됩니다.

 
 

다. 분리된 숫자 곱하기

F3셀과 G3셀의 수식을 *로 연결하기 위해
G3셀이 선택된 상태에서 수식입력줄의 수식을 끌어서 선택한 다음 복사하고

 
F3셀을 선택한 다음 수식 입력줄에서 커서를 맨 뒤로 이동한 다음 *를 입력하고 붙여 넣기를 하면, 아래와 같이 =까지 붙여 넣기가 되므로 =을 Del키를 눌러 삭제하고 엔터키를 누르면

 
아래와 같이 1*2의 결괏값 2가 표시됩니다.

 
F3셀의 채우기 핸들을 더블 클릭하면 F5셀까지 수식이 복사되고,
1*2=2, 23*45=1,035, 678*901=610,878이 구해집니다.

 
한 단계씩 수식을 작성하면 이렇게 복잡한 수식도 작성할 수 있습니다.

텍스트수식1(완성).xlsx
0.01MB

 

반응형