반응형

셀 병합 9

근속기간(날짜) 정렬 문제

1. 문제 아래와 같이 DateDif 함수를 이용해 근속 기간을 구한 후 G7에 =DATEDIF(D7,E7,"Y")&"년 " & DATEDIF(D7,E7,"ym") & "개월 "&DATEDIF(D7,E7,"md") & "일 "라고 입력하고, 아래로 복사한 후 순위를 =RANK(G7,$G$7:$ G$20,0)를 이용해 구하면 #VALUE! 에러가 발생합니다. 원인은 근속 기간이 숫자가 아니라 문자(텍스트) 형식이라 그렇습니다. 이 상태에서는 표시 형식을 날짜라고 지정해도 텍스트 형식이 변경되지 않습니다. 2. 해법가. 텍스트가 아닌 날짜를 반환하도록 수식 변경 반환 값을 텍스트 형식에서 날짜 형식으로 바꾸면 됩니다. 이 때 Date 함수를 이용하는데, 위에서 구한 연, 개월, 일을 Date함수의 year,..

Excel 2024.10.22

병합된 셀의 홈(A1) 셀 알아내기(2) - 홈 셀 알아내기

1편을 여기서 확인하세요. 나. '홈 셀'(1) 홈 셀의 의미홈 셀을 병합된 셀 기준으로 보면 A1셀, 다시 말해 1행 1열이 됩니다. 따라서, Range("A1")이라고 해도 되고, Cells(1,1)이라고 해도 됩니다. (2) 함수 만들기 반복된 동작은 Sub 프로시저로 처리하는데,처리한 후 값을 반환받는 함수를 만들려면 Function 프로시저를 사용해야 합니다.  ① 위 파일을 연 다음개발 도구 - Visual Basic을 누릅니다. 그리고, 맨 아래에 Function이라고 쓰고, 함수명을 입력하는데,GetHomeCell이라고 하겠습니다.그리고 셀 주소를 인수로 받아야 하므로 인수명을 rng로 하고 형식을 Range로 지정합니다.그러면 아래와 같이 됩니다.Function GetHomeCell(rn..

EXCEL - VBA 2024.05.30

병합된 셀의 홈(A1) 셀 알아내기(1) - 셀 병합 관련 메소드 및 속성

1. 문제병합된 셀의 첫셀을 홈 또는 A1셀이라고 합니다. 엑셀 시트에서 A1셀이 홈이지만,병합된 셀에서도 왼쪽 위 모서리가 홈이 되는 것입니다. 아래와 같은 경우 B3셀에서 B8셀까지 병합되어 있는데, 숫자는 B3셀에만 들어가 있고, B3셀이 홈 셀입니다. 2. VBA로 홈 셀 알아내기가. 병합된 셀과 관련된 메서드와 속성(1) Merge(가) 구문범위.Merge지정된 범위를 병합하는 것입니다. (나) 적용개발도구 - Visual Basic을 누른 다음삽입 모듈을 하면왼쪽 엑셀 파일명 아래에 모듈 > Module1이 생기는데,오른쪽 코드 창에 sub merge 하고 엔터 키라고 칩니다.그러면 아래와 같이 Sub 프로시저가 만들어집니다. 그 안에 Range("E3:E8").merge 라고 입력하고Sub ..

EXCEL - VBA 2024.05.29

셀 병합 유지 상태에서 합계 등 구하기

1. 문제 아래와 같이 셀 병합이 된 경우 윗 셀에만 값이 있기 때문에 합계를 계산하거나, 건수 등을 계산할 때 제대로 된 값이 나오지 않게 됩니다. 아래를 보면 유상인 LH의 현장 수는 2개가 맞는데, 개수가 3,200이어야 하는데, 1700로 표시되는 문제점이 있습니다. 문제는 D5셀과 D6셀이 병합되어 있다 보니 F6셀은 합산이 되지 않아서 그렇습니다. 2. 해법 가. 병합셀에 값 넣기 C열과 D열의 병합셀의 빈 셀에도 값을 넣어야 합니다. (1) 나중에 병합셀을 서식 복사해야 하므로 C열을 복사한 후 i열에 붙여 넣습니다. (2) C열과 D열을 선택한 후 '병합하고 가운데 맞춤'을 눌러서 병합을 해제합니다. 토글 기능이기 때문에 병합 버튼이지만 병합된 셀이라면 병합이 해제됩니다. (3) 빈 셀 선..

Excel 2024.04.09

병합 셀의 첫번째 셀 값 찾기(1) - if와 Offset 함수

아래 데이터를 이용하여 연도별, 지점별로 판매량과 판매액을 집계하는 것을 피벗 테이블과 SumIfs함수를 이용해 만들어 보겠습니다. 1. 피벗 테이블 이용 피벗 테이블 기능을 이용하면 쉽게 아래와 같이 만들 수 있는데, 열 레이블은 연도별로, 행 레이블은 지점별로 수정할 수는 있지만, 연도별까지 없앨 수는 없고, '합계 : 판매량'과 '합계 : 판매액'을 판매량과 판매액으로 수정하고 싶어도 '이미 사용 중인 피벗 테이블 필드의 이름입니다'라고 하면서 수정이 안되는 한계가 있습니다. 확인 버튼을 누른 후 Esc키를 눌러 원래 필드명으로 돌아옵니다. 2. SumIfs 함수 이용 위와 같은 한계점을 극복하기 위해 SumIfs함수를 이용할 수 있으며 이 방법은 피벗 테이블에 비해 어려운 단점이 있지만, 원하는 ..

Excel 2023.05.02

구구단 만들기(2) (엑셀 VBA, 기록된 구구단 매크로 실행 및 분석)

1편에서 작성한 매크로를 실행해보고, 작성된 매크로를 분석해 보겠습니다. 1. 매크로로 기록한 매크로 실행 위 파일을 연 다음, 입력된 내용을 지우고, 매크로를 실행하면 1편에서 작업했던 모든 내용이 순식간에 실행되어 구구단이 화면에 표시됩니다. 처음 보시는 분은 신기할 것입니다. ​ ① A열과 1행 사이 코너를 클릭해서 전체 셀을 선택한 다음 ② 마우스 오른쪽 버튼을 누른 다음 삭제 메뉴를 클릭합니다. ③ 그러면, 아래와 같이 입력된 모든 내용이 지워지고, 열 너비도 초기화됩니다. 그러나, Delete키를 눌러 지우면 내용만 지워질 뿐 열 너비는 그대로 유지됩니다. ④ 개발도구 - 매크로 메뉴를 선택하고, ⑤ '매크로1'이란 매크로를 더블 클릭하거나, 클릭한 후 오른쪽 실행 버튼을 클릭합니다. 저는 p..

EXCEL - VBA 2022.12.09

구구단 만들기(1) (엑셀 VBA의 매크로 기록하기)

구구단 만들기를 매크로 기록 기능을 이용하는 것과 직접 프로그램하는 것 두 가지로 나눠서 설명을 해보겠습니다. ​ 먼저 매크로 기록 기능을 이용하는 것입니다. 이것을 통해 ① 값 및 수식 입력, 채우기, 정렬, 복사하여 붙여넣기, 셀 병합하고 가운데 맞춤 등의 엑셀 기능을 배우고, ② VBA에서 셀을 어떻게 다루는지, 복사, 셀 병합 등은 어떻게 하는지 기타 VBA의 동작 원리를 익힐 수 있습니다. ​ 1. 구구단 작성 과정을 매크로로 기록하기 구구단도 여러 가지 방식으로 작성할 수 있지만 수식 기능을 이용할 수 있도록 숫자나 기호 등을 별도의 셀에 입력하도록 하겠습니다. 아래 그림을 보면 2*1=2를 하나의 셀에 입력하지 않고, 각각 한 개의 셀에 입력을 했고, 결괏값 2도 수식을 사용해서 =a4*c4..

EXCEL - VBA 2022.12.08

엑셀의 표를 티스토리의 표로 변환하는 매크로(4) - 셀 병합2

1. 경우의 수 찾기 프로그램은 모든 경우의 수를 찾아서 그에 따른 처리를 해야 완벽한 프로그램이 됩니다. 하나라도 빠지면 불완전하고 이상한 결과를 낳게 되니 모든 경우의 수를 찾는 노력을 게을리 하면 안됩니다. 이것이 처리 로직을 짜는 것만큼 중요합니다. 위 표를 살펴보면 셀 병합이 된 경우도 있고, 안된 경우도 있고, 셀 병합도 가로 방향으로만 된 경우, 세로 방향으로만 된 경우, 두 방향 모두 셀 병합인 경우가 있습니다. 또한 글자도 굵은 글자가 있고, 보통 글자가 있고, 들여쓰기가 된 경우도 있고 아닌 경우도 있고, 데이터가 문자인 경우도 있고 숫자인 경우도 있습니다. 일반적으로 숫자는 천단위마다 콤마를 넣어서 표시합니다. 위와 같은 개별 요인들을 결합해서 모든 경우의 수를 도출하고 그에 따른 적..

EXCEL - VBA 2022.10.01

엑셀의 표를 티스토리의 표로 변환하는 매크로(3) - 셀 병합1

아래와 같이 병합된 셀이 가로, 세로, 가로와 세로 모두된 경우를 대상으로 해보겠습니다. 작업할 파일은 아래와 같습니다. 1. 준비 가. 셀 병합 여부 및 유형 판단 VBA에서 병합된 경우는 병합된 셀의 개수를 세어 판단을 하는데, 단순히 셀주소.MergeArea.Count로 하면 병합된 셀의 방향을 알 수 없으므로, 셀주소.MergeArea.Rows.Count와 셀주소.MergeArea.Columns.Count를 사용해야 합니다. 가로,세로 모두 병합인지 알려면 2개를 모두 사용하면 됩니다. 개발도구 - Visual Basic을 눌러 Visual Basic Editor를 실행하고, 직접 실행창에(없다면 보기메뉴에서 직접 실행창을 클릭하면 됨) ?range("a1").Mergearea.Rows.count..

EXCEL - VBA 2022.09.29
반응형