반응형

분류 전체보기 552

소숫점이하 숫자 구하기

아래와 같이 정수와 소수가 함께 존재할 때 정수인지 여부를 판단하려면 소수점이하 숫자가 있는지 판단 해야 합니다. 1. Int 함수를 이용하는 방법 Int함수는 Integer의 약자로 정수로 변환해 주는 함수입니다. 다시 말해 소수점이하 숫자를 없애줍니다. Round함수와 달리 인수로 소수점이하 자릿수를 없애주는 0을 입력할 필요 없이 =int(a1)이라고 입력한 다음 B1셀의 채우기 핸들을 더블 클릭하면 B14셀까지 수식이 복사됩니다. 홈 탭 자릿수 늘임 아이콘(명령)을 눌러도 소수점이하 숫자가 없습니다. 이제 A1에서 B1을 빼면 정수를 제외한 소수점이하 부분만 표시됩니다. 정수인 경우는 숫자가 같으므로 0이 반환됩니다. 따라서, 값이 0이면 정수, 아니면 소수라고 표시할 수 있습니다. =IF(A1-..

Excel 2024.01.19

리본 메뉴에 매크로 명령 추가하기

아래와 같이 작성한 매크로로 있을 때 개발도구 탭의 코드 그룹에서 매크로 명령을 눌러서 실행하는 것이 일반적인 방법인데, 작성된 매크로를 리본 메뉴에 추가하면 더 빠르게 매크로를 사용할 수 있습니다. 매크로를 추가하는 방법은 아래와 같습니다. 1. 매크로 작성 또는 준비 먼저 작성한 매크로가 있어야 하겠죠? 없다면 아래 파일을 임의 폴더에 저장한 후 개발도구 - Visual Basic을 누른 후 파일 가져오기를 하면 됩니다. 그런데 Personal.xlsb가 없다면 통합문서에 추가되므로 Personal.xlsb를 먼저 만들어야 하는데, 이 방법은 이 글을 참고 바랍니다. 2. 매크로 명령 추가 가. 파일 - 옵션 - 리본 사용자 지정 클릭 리본 사용자 지정을 클릭하면 왼쪽에는 명령을 선택하는 창 오른쪽에..

Excel 2024.01.19

일정한 조건에 해당하는 합계 구하기

1. 문제 A셀의 문자 길이가 4인 경우 B셀의 값을 합계하는 것입니다. 2. 해결 방안 다양한 해결방안이 있을 수 있습니다. ① A열의 코드를 살펴보니 A3세의 값이 5116인 경우 A4셀부터 5116으로 코드가 시작되므로 4개를 잘랐을 때 코드 값이 같은 것을 더할 수도 있고, ② 코드 길이가 7자리에서 4자리로 바뀔 때, 다시 말해 코드의 길이가 4인 것 전까지 더할 수도 있습니다. 그리고, 함수도 Sum과 If 배열 수식을 이용할 수도 있고, SumIf를 이용할 수도 있고, sumProduct, 그리고, Offset과 Match함수를 이용할 수도 있습니다. (1) Sum과 If 배열 수식을 이용하는 경우 =SUM(IF(LEFT($A$4:$A$24,4)=A3,$B$4:$B$24,0)) A열의 왼쪽 ..

Excel 2024.01.18

여러 개중 원하는 위치의 문자 찾기

1. 문제아래와 같은 문자열을 보면 ₩가 여러 번 나오는데, 첫 번째 ₩부터 두 번째 ₩전까지의 문자, 두 번째부터 세 번째 전까지의 문자를 추출해 보겠습니다. 2. 마지막 기호 다음의 문자열을 추출하는 Lambda 식 마지막 반복 문자 이후의 문자열 추출하기 (2)에서 했던 방법을 유사하게 적용하면 됩니다. 아래는 마지막으로 나오는 ₩다음의 문자열을 추출하기 위한 Lambda 식으로 재귀 호출을 사용해서 last_word를 반복 실행하면서 ₩가 나올 때마다 그다음의 문자열을 잘라내서 last_word 함수에 대입한 다음 마지막으로 남는 문자열을 반환하는 것입니다.=lambda(textString, findChars, if(iserror(find(findChars, textString)),textStri..

Excel 2024.01.17

마지막 반복 문자 이후의 문자열 추출하기 (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

MakeArray 함수로 구구단 만들기

1. MakeArray 함수 가. 구문 =MAKEARRAY(rows, cols, lambda(행, 열)) 지정된 행과 열의 크기로 Lambda함수를 이용해 행과 열 값이 입력된 계산 값을 반환합니다. 나. 예시 o 행과 열을 곱한 값 반환하기 =MAKEARRAY(3,3,LAMBDA(row,col,row*col)) 3*3의 배열을 만드는데 행이 고정된 상태에서 열의 크기가 변합니다. For~Next 반복문과 매우 유사합니다. o For ~ Next 반복문과 비교 위와 같은 결과를 아래와 같이 매크로를 만들어서 얻을 수 있습니다. Sub maparr() Dim row As Integer, col As Integer For row = 1 To 3 For col = 1 To 3 Cells(row + 4, col..

Excel 2024.01.14

진행 상태 표시 - 완료, 지연, 진행필요, 미완료(2)

1편에서 만든 수식을 경우에 알맞게 조합하면 됩니다. 그리고, if문을 여러 번 중복해서 사용해야 하며, if문을 중복해서 사용한다는 것은 if함수 안에서 다시 if를 사용하는 것입니다. 예를 들어 아래 화면에서 AA6셀의 수식은 =IF(AA5=1,"1임",IF(AA5>1,"1보다 큼"))로서 AA5셀의 값이 1이면 "1임"이라고 표시(반환)하고, (1이 아니고) 1보다 크면 "1보다 큼"이라고 표시(반환)하는 것입니다. 위의 경우 AA5셀의 값이 2이므로 "1보다 큼"이라고 AA6셀에 값이 표시됩니다. 이런 식으로 2번뿐만 아니라 여러 번 if함수를 중첩적으로 사용할 수 있습니다. 1. 1월인 경우 1월인 경우 참인 값(value_if_true)에 계획과 수행이면 "완료", 아니면 "진행필요"라고 표시..

Excel 2024.01.06

진행 상태 표시 - 완료, 지연, 진행필요, 미완료(1)

프로젝트별로 계획 대비 수행 실적을 비교해서 완료, 지연, 진행 필요, 미완료를 표시하려고 합니다. 날짜에 따라 진행 상태를 확인해야 하므로 B4셀에 기준일이 있습니다. 1. 경우의 수프로그램이든 엑셀이든 맞는 값을 찾으려면 모든 경우의 수를 찾는 것이 중요합니다. 위 경우에 먼저 1월과 2월 이후로 나눠야 합니다. 따라서, 1월인 경우 계획 대비 수행을 모두 완료했다면 '완료'이고, 계획 대비 수행을 완료하지 않았다면 '진행필요'가 됩니다. 그리고, 2월 이후는 기준 월에 계획이 있는지 여부에 따라 있다면 ① 기준월까지의 계획 대비 수행이 모두 됐다면 '완료'이고, ② 전월까지 계획 대비 수행이 모두 됐다면 '미완료'이고, ③ 전월까지 계획 대비 수행이 모두 완료되지 않았다면 '지연'이 됩니다. 없다면..

Excel 2024.01.06

UDF에서 자기 셀 참조 시

일반적으로 UDF(User Defined Function, 사용자 정의 함수)는 다른 셀 주소를 참조해서 계산을 하며, 아래는 제곱값을 구하는 함수의 코드입니다. Function square(rngA As Range) square = rngA.Value * rngA.Value End Function 그러나, 자기 자신의 셀을 참조해야 할 수도 있습니다. 이때 사용하는 것이 Application.Caller 속성(Property)입니다. Application.Caller 대충 감을 잡으면 응용 프로그램이 호출하는 곳 또는 어디서 호출되었는지 정도가 될 것입니다. 따라서, 자기 자신 셀을 가리킵니다. 위의 경우에 항상 왼쪽 두 번째 셀의 값을 참고한다고 하면 범위를 이용하지 않고 아래와 같이 Applicat..

EXCEL - VBA 2024.01.05
반응형