본문 바로가기

공부하징

[엑셀공부하징] 엑셀이 숫자를 숫자로 인식하지 하지 못 할 때, vlookup함수가 적용안될 때

 

 

한 마디로, "환장한다."

아니 이게 왜 숫자인데, 숫자로 인식을 못하니?

숫자인데 숫자로 인식을 못하니 vlookup도 안먹고, If 함수도 안먹고

내가 노가다 해야 할 행은 1만행 가까이 ^^

 

이 간단한 걸 몰라서 해결 방법을 찾아 꽤 고생을 했더랬다

그리고 아직 잊고 있었는데,

비슷한 문제로 고생하는 친구를 발견!

알려주다보니 블로그에도 적어야 겠다는 생각이 들었다

 

--------------------------------------------

내 맘대로 난이도

(1~5점, 1점에 가까울 수록 쉽고 간단하고, 5에 가까울수록 귀찮고 복잡하다)

 

난이도 : □ ( 3점 : 어렵다기 보단 쉽게 떠오르지 않는다.. 엄청 헤맴 ㅠ  )

사용방법 : □ ( 1점 : 너무 쉬워서 알고 나면 허무함 )

활용도 :  ( 3점 : 사용할 순간이 자주 오진 않는다 )

--------------------------------------------

 

 

언제 쓰면 좋을까

 

그렇다, 대체 어떤 경우일지 모르지만

숫자 로 변환도 안먹히고, 오류무시도 안먹히고, 셀서식도 안먹히고 갖은 술수를 썼는데도

숫자로 인식하지 못했을 때, 쓰면 좋다

 

가령 이런 상황일 때 말이다.

 

=VLOOKUP(B2,$H$2:$I$10,2,0)

분명 좌측의 123456789 와 일치하므로 커서가 있는 셀에 2의 값을 불러와야 하지만,

일치하는 값이 없다고 #N/A뜬다.

환장할 노릇이다.

 

 

바로 써보자

해결방법은 어처구니 없을 정도로 쉽다.

숫자로 인식하지 못하는 셀에 1을 곱해주면 된다! (^오^ 이렇게 쉽다고?)

그렇다 이렇게 쉽다 ^^

=VLOOKUP(B2*1,$H$2:$I$10,2,0)

 

한 걸음 더! Right, Left 함수 등에도 써먹을 수 있다

 

이런 환장할 일은 vlookup에만 일어나지 않는다.

내가 처음에 겪었던 것 처럼 if함수, left함수를 함께 쓸 때도 쓸 수 있다.

두 가지 케이스가 있을 수 있다.

 

case1

기존문법
=IF(LEFT(B15,1)=3,RIGHT(B15,1)-6,B15*0)

숫자 반환이 안될 때 1을 곱한다
=IF(LEFT(B16,1)*1=3,RIGHT(B16,1)*1-6,B16*0)

 

가장 왼쪽 숫자가 "3"이라면, 가장 오른쪽 숫자에서 3을 빼고, 그렇지 않으면 0을 곱하라 라는 의미이다

그러면 결과값은 모두 3이 나와야 하는데, 위쪽은 0이 나왔다.

즉, 3123459가 숫자로 인식되지 못한것이다.

 

이때 아래처럼 left함수와 right함수에 각각 1을 곱해주면 결과값은 우리가 기대했던 대로 3이 나온다

 

case2

기존문법
=IF(LEFT(B18,1)=3,B18*-1,B18*0)

숫자반환이 안될 때, 큰 따옴표를 붙인다
=IF(LEFT(B18,1)="3",B18*-1,B18*0)

 

case1과 차이라면, if함수가 참일 때 반환하는 함수 값에 텍스트추출 함수가 없으면

바로 숫자만 곱해줘도 결과 값을 산출할 수 있는데,

이 때 기존 함수가 숫자로 인식되지 않는 경우라면 똑같이 조건절도 3 (숫자)로 기입하는 것이아니라

"3" (문자)로 기입함으로써 수식의 참을 유도할 수 있다

 

요약하면,

엑셀이 숫자를 숫자로 인식하지 못하면 해당 셀에 1을 곱해봐라! 이다.

한 줄 짜리를 길게 써봤네용

 

그럼 다음 포스팅에서 만나요!

제발!