반응형

mid 21

특정 기호 사이의 문자 찾기(1)

1. 문제 아래와 같이 하이픈과 하이픈 사이의 문자를 찾고자 하는 경우가 많을 것입니다. 2. 해법 가. 논리 일반적으로 생각할 수 있는 것이 find 함수이고, 그다음 생각할 수 있는 것이 substitute 함수를 이용하는 것입니다. 나. find 함수를 이용하는 경우 (1) 첫 번째 하이픈의 위치 찾기 =find("-",B2)라고 하면 B2셀에서 첫 번째 하이픈의 위치를 알 수 있습니다. 5란 다섯 번째 위치에 하이픈이 있다는 것입니다. (2) 두 번째 하이픈의 위치 찾기 두 번째 하이픈의 위치를 찾을 때는 첫 번째 하이픈 위치 다음부터 찾아야 첫 번째 하이픈이 찾아지는 것을 막을 수 있으면, 첫 번째 하이픈 위치 + 1을 find 함수의 세 번째 인수를 넣으면 됩니다. 따라서, 수식은 =find(..

Excel 2024.04.07

텍스트내 금액 삭제하기

1. 문제 아래와 같이 텍스트에 금액이 포함되어 있을 때 금액을 지우려고 하는 것입니다. 규칙은 금액은 쉼표가 1개 또는 2개가 있고, 일반 숫자는 쉼표가 없이 숫자만 있습니다. 2. 해결 방안 Find 함수는 와일드카드 적용이 안되는데, Search 함수는 와일드카드 적용이 돼서 Search 함수를 이용해서, 컴마가 하나만 있는지 2개가 있는지에 따라 처리를 달리하는 것입니다. 파일 첨부금액부분지우기(답글).xlsx 단계별로 이해할 수 있도록 수식을 작성했습니다. B1셀 : =SEARCH("?,???",A1) 첫 번째 컴마 앞의 숫자 위치를 찾습니다. C1셀 : =SEARCH("?,???,",A1) 컴마가 2개 있는 경우 첫 번째 컴마 앞의 숫자 위치를 찾습니다. 위 2개는 위치가 중요한 것이 아니고 ..

Excel 2024.03.25

한 셀에서 일정한 간격으로 떨어진 숫자 합계 구하기

1. 문제 아래와 같이 일정한 길이의 숫자가 한 칸 공백으로 연결되어 있을 때 합계를 구하는 것을 알아보겠습니다. Mid를 이용한 365 이전 버전과 TextSplit와 ByRow를 이용한 365 버전 2가지, 총 세 가지 방법에 대해 알아보겠습니다. 2. Mid 함수 가. Mid 함수의 구문 MID(text, start_num, num_chars)로서 문장(또는 문자열이 들어 있는 셀 주소)과 시작 위치, 가져올 문자의 개수 3개로 되어 있습니다. 나. 수식 작성 위 문제를 살펴보면 숫자는 7자리이고, 공백이 1개 있으므로 8개가 1묶음입니다. 따라서, Mid함수를 이용해 Mid(A2,1,7), 그다음은 Mid(A2,9,7)... 식으로 개별적으로 숫자를 발췌한 후 더할 수도 있으나 배열 수식을 이용해..

Excel 2024.03.07

단위 앞의 숫자 추출하기(3) - 한글

한글은 Code, UniCode 함수를 이용할 수도 있고, Mid 함수를 이용할 수도 있습니다. 5. 한글 앞의 숫자 추출하기 가. 한글에 해당하는 Code 또는 UniCode값 알아내기 코드 값을 알아내기 위해 i11셀에 =code(h11)이라고 입력하면 42145가 구해지고, 유니코드 값을 알아내기 위해 j11셀에 =unicode(h11)이라고 하면 12593이 구해집니다. 이제 i11셀과 j11셀을 선택한 후 j11셀의 채우기 핸들을 더블 클릭하면 나머지 한글의 (유니) 코드 값을 알 수 있습니다. 따라서, 이것을 이용해서 한글의 위치를 알 수 있고, 1을 빼면 숫자만 구할 수 있습니다. 나. 숫자 추출하기 (1) Code 함수 이용하기 영문자의 위치를 구해서 숫자를 추출하는 D3셀의 수식을 복사해..

Excel 2024.03.01

단위 앞의 숫자 추출하기(2) - Code 함수

4. Code 함수 이용하기 가. Code 함수의 정의 및 아스키코드 표 Code함수는 문자에 대한 Ascii 코드 값을 반환해 주는 함수입니다. 아래가 아스키코드 표인데, 숫자는 48부터 시작하고, 알파벳 A는 65, 소문자 a는 97부터 시작합니다. 나. Code 함수를 이용한 첫 번째 문자의 위치 찾기 (1) 문자가 알파벳인지 여부 판단 한 글자씩 Code 값을 찾아내는 수식은 CODE(MID(B3,COLUMN(A:K),1))>=65 입니다. 그러면 아래와 같이 False, True, True... #Value!... 등으로 표시됩니다. 2019 버전 등의 경우는 먼저 11개의 범위를 잡은 다음 수식을 입력하고, CSE 캐를 눌러야 합니다. (2) 첫 번째 알파벳 위치 파악하기 =MATCH(TRUE..

Excel 2024.02.29

마지막 반복 문자 이후의 문자열 추출하기 (2)

이번에는 Lambda 함수를 이용해 보겠습니다. 1. Lambda 함수 가. 구문 =LAMBDA([parameter1, parameter2, …,] calculation) 로서 인수들을 입력하고, 인수를 이용한 계산식을 끝에 입력합니다. 나. 사용 예 (1) 셀에 입력 셀에 =LAMBDA(x,y,x+y)(3,4)라고, 인수를 이용한 수식을 입력한 다음 인수에 들어갈 값을 괄호 안에 입력하는 방식입니다. 수식은 간단하게 x와 y를 더하는 것으로 3과 4를 대입하니 7이 반환됩니다. (2) 이름관리자에 입력 일시적인 것은 위와 같이 사용할 수 있지만, 계속적으로 사용하는 것이라면 이름관리자에 넣고 사용하는 것이 좋습니다. 다만 한계는 이름관리자로 입력된 파일에만 적용되므로 다른 파일에도 적용하려면 다른 이름..

Excel 2024.01.16

마지막 반복 문자 이후의 문자열 추출하기 (1)

1. 문제 아래와 같은 폴더명에서 파일명만을 분리해내려고 합니다. 구분자는 ₩입니다. 2. 해결방안 (1) 해결 방안 1 : Find 함수 반복 사용 Find 함수의 구문은 FIND(find_text, within_text, [start_num])로서 찾을 문자열, 범위, [시작 위치]인데, 시작 위치를 다시 Find함수를 이용해서 지정할 수 있습니다. A2셀의 경우 ₩가 다섯 번 반복되므로 ₩ 찾는 것을 다섯 번만 해야 29란 숫자가 나오지, 여섯 번 하면 #VALUE! 에러가 발생합니다. 따라서, ₩의 개수만큼 find 함수를 사용해야 하는데 그렇게 수식을 작성할 수 있는 방법이 없습니다. IfError 함수를 사용하려고 해도 이 긴 수식을 개수에 맞게 넣어야 하는데 그건 가독성이 떨어지고 일이 더 ..

Excel 2024.01.15

문장에서 숫자만 추출하기(2)

3. Find함수를 이용해 첫 번째 숫자의 위치 찾기(성공) Find함수의 첫 번째 인수는 찾을 값인데, 배열로 지정할 수 있으므로 숫자를 배열에 넣어서 =find({0,1,2,3,4,5,6,7,8,9},a2)라고 하면 Microsoft 365의 경우는 아래와 같이 동적 배열로 반환됩니다. 다른 엑셀 버전은 7만 반환될 듯합니다. 위 반환값에서 7은 0의 위치, 9는 1의 위치이며, 세 번째부터는 에러가 발생하는데 해당하는 숫자가 없기 때문입니다. 에러가 나면 떠오르는 것이 Aggregate 함수입니다. 배열형인 경우 Aggregate 함수의 구문은 AGGREGATE(function_num, options, array, [k])이며, 두 번째 인수인 options에서 오류값을 무시하는 옵션을 지정할 수 ..

Excel 2023.11.06

문장에서 숫자만 추출하기(1)

1. Find 함수를 이용해 맨 오른쪽 공백의 위치 찾기(실패) 마지막 공백의 위치를 찾은 다음, 그 위치의 오른쪽 첫번째부터 숫자를 가져오면 됩니다. Find 함수는 구문이 FIND(find_text, within_text, [start_num]) 이므로 세번째 인수로 시작 위치를 숫자로 지정할 수 있습니다. 숫자의 길이에서 왼쪽으로 시작 위치를 지정하려고 하는데 10이면 두번째가 아니라 첫번째 공백 위치까지 갈 수 있으므로 5로 지정하겠습니다. 그러면 수식은 =find(" ",a2, len(a2)-5) 가 됩니다. 공백의 위치 6이 구해졌습니다. 숫자를 추출하는 것은 그 위치에 1을 더한 위치부터 가져오는데 Mid함수를 이용하면 됩니다. Mid함수의 구문은 MID(text, start_num, num..

Excel 2023.11.04

한글과 영문을 기준으로 숫자 분리하기

아래와 같이 텍스트에 '오더'와 'Order'가 있을 때 그다음에 나오는 숫자를 분리하는 다양한 해법에 대해 알아보고자 합니다. 1. 방법 1 가. '오더'를 기준으로 숫자 분리하기 간단하게 생각할 수 있는 방법은 오더 또는 Order를 찾아서 그 위치를 기준으로 값을 가져오는 것인데, 오더는 2글자이고, Order는 5글자이다 보니 조건을 달리해야 하며, Mid함수를 이용해 숫자를 분리해서 가져오는 경우 반환값이 문자이기 때문에 숫자로 변환하기 위해서는 Value 함수를 이용해야 합니다. 따라서, =VALUE(MID(B4,FIND("오더",B4)+3,10))이 됩니다. Find함수는 구문이 FIND(find_text, within_text, [start_num]) 이므로 find_text는 "오더"이며..

Excel 2023.09.01
반응형