기본 콘텐츠로 건너뛰기

라벨이 데이터처리인 게시물 표시

(VBA) 013 - 조건문을 사용해봅시다! if

#毎日育ちゃん可愛い大会 (설명자료) pptx파일 (xlsm파일) xlsm파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1)VBA나 엑셀을 사용하다보면 특정 조건을 분기로 다른 데이터 처리방법을 사용하는 경우가 있습니다. 2)이것을 처리하는 것이 if문입니다! (switch-case문도 있지만, 이건 다음에 다루도록 할게요! 3)if를 사용하면 하나의 함수를 만들어 여러 가지 데이터를 처리할 수 있다는 이점이 있지요! ★ 어떤 경우 사용합니까 ? 1) 예를 들자면 , 데이터의 종류가 3 가지라고 합시다 . (0 보다 크다 , 0 이다 , 0 보다 작다 ) 2) 이 때 , 이 데이터에 따라 각기 다른 데이터 처리를 해야한다고 하면 ,  지금까지의 학습 내용이라면 함수를 세 개를 만들고 각 조건별로 다른 함수를 불러야 하겠지요 ! 3) 이를 해결하기 위해서 , 하나의 함수에 조건문을 넣어서 처리해주는 것입니다 ! ★ 예제의 처리과정을 알아봅시다 ! 1) 예제에서는 0 보다 클 때는 10 배를 곱하고 , 0 보다 작을 때는 -1 을 곱하고 , 나머지의 경우 (0 인 경우 ) 1 을 , 바로 옆 Cell 에 기록합니다 ! 2) 각 Cell 의 데이터를 조건식으로 받기 위해 If, Elseif 의 옆에 달아놓았습니다 . 3) 이렇게 함수를 구현하면 , 하나의 함수로 여러 가지 처리방법을 적용할 수 있겠지요 ! 4) 처음엔 If~then, 두 번째 조건부터는 Elseif~then, 나머지 모든 조건은 Else 로 처리하는 것으로 기억합시다 ! Sub Test()     Dim i As Integer          Range("A2").Select     i = 0     Do         If ActiveCell.Offs...

(VBA) 002 - VBA + Excel 복합 Loader concept

#毎日育ちゃん可愛い大会 (pptx파일) pptx파일 (xlsx파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 복잡한 수식을 VBA 로 구현하려면 너무 어렵겠죠 ! 2) 회사에서 일을 하다보면 이미 만들어진 복잡한 수식을 반복해서 계산해야 될 때도 있죠 ! 3) 그러면 수식은 Excel 로 , 반복작업은 VBA 로 처리하는 방법 이 필요하겠죠 ! 그 때 사용합니다 ! ★ 어떻게 사용하는가 ? 1) 미리 Excel 시트에 수식을 작성해놓습니다 ! 2) 그리고 , 데이터 복사 – 붙여넣기만 반복하면 됩니다 ! 너무 간단하죠 ! 3) 데이터 복사 à 계산영역으로 붙여넣기 / 처리된 결과 복사 à 결과영역으로 붙여넣기 ! ★ 예제의 처리과정을 알아봅시다 ! 1) 예제는 Raw, Cal, Result 총 3 개의 Sheet 로 구성되어있습니다 . 2) Raw 의 각 행에 대한 데이터를 입력받아 , 사전에 작성된 Cal 에서 계산을 한 후 Result 로 결과를 발송하는 순서입니다 . 3) 데이터를 아래의 ①과 같이 처리영역으로 발송 후 , 처리된 결과를 ②와 같이 결과영역으로 발송하기 만 하면 됩니다 . ( 中谷育 ちゃんのイメージ について) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてください。 直ちに処理します。 (About translation this material to the other languages) If you need this information with other language, then let me know about that. I will do my best to translate this material to language you ask me to, so you can use this material with the language you want...

(VBA) 012 - Cells 를 사용한 상대좌표 활용

#毎日育ちゃん可愛い大会 (설명자료) pptx파일 (예제파일) xlsm파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) VBA 를 사용하다보면 , ActiveCell 을 선택 후에 영역을 지정해야하는 경우가 왕왕 있죠 ! 2) Cells 를 모르면 매번 주소를 만들어서 사용해야 하는 단점이 있습니다 . 3) 하지만 Cells 를 사용할 수 있으면 , ActiveCell 이나 Range 를 지정하고 , 필요한 만큼 선택 하여 사용할 수 있습니다 ! ★ 어떤 경우 사용합니까 ? 1) for, Do~Loop 등을 사용한 반복문을 사용하여 데이터나 이미지 여러 개를 한 번에 옮겨야 하는 경우 가 있습니다 . 2) 이를 매번 주소를 입력하여 처리하는 것은 반복문 작성에 불리하게 됩니다 . 3) 그런 경우 , ActiveCell, Range, Offset 과 Cells 를 사용한다면 손쉽게 처리 할 수 있습니다 ! ★ 어떻게 사용하는가 ? 1) ActiveCell, Range 뒤에 붙여서 사용할 수 있습니다 . 2) Offset 뒤에 붙여서도 사용할 수 있습니다 ! 3) 단독으로도 사용 가능합니다 ! 이 경우 , 상응하는 절대좌표로 인식합니다 ! 4) Range (Cells( 시작행 , 시작열 ), Cells( 마지막행 , 마지막열 )) 로 사 용 ! ( 中谷育 ちゃんのイメージ について) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてください。 直ちに処理します。 (About translation this material to the other languages) If you need this information with other language, then let me know about that. I will do my best to translate this material to language you as...

(VBA) 011 - 만든 함수에 변수(Parameter)넣기

#毎日育ちゃん可愛い大会 (pptx파일) pptx파일 (xlsx파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 함수를 쪼개서 만들다보면 , 행이나 열을 제어하는 인자를 전달해야 할 때가 있습니다 . 2) 같은 기능을 행이나 열을 통해 반복할 때 사용하는 기능입니다 ! 3) 예를 들자면 , 한 열에 대한 기능을 만들어놓고 , 반복문을 통해 옆의 열로 이동하면서 처리할 때 사용하면 유용하죠 ! ★ 어떻게 생겼는가 ? 1) 아래와 같이 만든 Sub 함수의 옆의 괄호를 사용합니다 ! 2) 지금까지는 Sub 나 Function 에 변수를 넣지 않았는데 , 이제는 사용할 때가 되었네요 ! 1 2 3 4 5 Function data_input(j  As  Integer)     ActiveCell.Offset( 0 , j).Value  =  j End  Function cs ★ 어떻게 사용하는가 ? 1) 이렇게 매개변수 (Parameter) 가 들어가면 , 단독으로는 실행이 되질 않습니다 ! 2) 이미 반복실행하거나 , 외부에서 제어하여 사용할 것으로 계획한 것 이기 때문입니다 . 3) 그렇기 때문에 아래와 같이 제어인자 입력부 -> 데이터 처리부가 세트가 됩니다 . ( 中谷育 ちゃんのイメージ について) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてください。 直ちに処理します。

(VBA) 010 - 이름 비교 후 데이터와 이미지를 복사하는 모듈 만들기

#毎日育ちゃん可愛い大会 (pptx파일) pptx파일 (xlsx파일) xlsm파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 일반적으로 회사에서는 데이터와 이미지를 필터라는 기능을 이용해서 수동으로 처리하고 있습니다 . 2) 일반적으로 Serial labeling 을 합니다만 , 이걸 다시 처리하는 것도 Loss, 제대로 안되면 다시하는 것도 Loss 입니다 . 3) 어째선가 데이터가 수백개가 넘어가고 이미지가 제대로 pre-processing 되어 있지 않으면 Human error 가 다발합니다 . 4) 그런 관점에서 자동 비교 후 데이터 & 이미지 카피가 필요하게 됩니다 . ★ 오늘은 난이도가 조금있는 주제가 되겠습니다 ! 1) 제가 회사생활하면서 직접 만들어 본 주제를 일반문제에 해결할 수 있도록 간략화하여 설명드리겠습니다 . 2) 한 가지 주제에 대한 것이 아니라 복합적 주제를 동시에 다루니까 조금 어려우실 수도 있어요 ! 3) 전체 코드를 기능별로 묶어드릴 테니 , Divide & Conquer 관점에서 한 번 확인해봅시다 ! ★ Divide & Conquer 를 해봅시다 ! 1) 첫 번째는 역시 기능을 쪼개서 메쏘드를 만든 뒤 하나의 함수로 합치는 것이겠죠 ! 2) 여기선 기준 데이터 Sheet 를 먼저 옮기고 , 그 다음에 비교 데이터 Sheet 에서 같은 이름이 있을 때 결과 Sheet 로 옮기는 방법을 사용해보려고 합니다 ! ★ Excel Module 을 구성해봅시다 ! 1) 예시를 위해 아래와 같이 Excel Tab 을 준비해서 진행하려고 합니다 . 2) Option sheet 에서는 사용할 유저의 편의를 위해 Sheet 이름과 시작점을 바꿀 수 있도록 몇 가지 설정을 넣습니다 . 어째선가 이런식으로 만들어 두는 편이 회사에서 범용으로 쓰기 편했다고 생각합니다 . 3) 마지막...

(Excel) 004- 같은 행에 여러 조건이 있는 경우 처리 방법 / 식별자와 VLOOKUP

(pptx 파일) pptx파일 (xlsx 파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1)행이나 열, 또는 Sheet과 같이 다른 특성을 가지는 1,2,3차 데이터배열에 대한 처리 방법을 지금까지 설명드렸습니다. 2)어째선가 데이터 로그라던가, 실험계획법을 진행하다보면 같은 행에 여러 조건과 데이터가 같이 있는 경우 가 있습니다. 3)이 때, 식별자(Finder)라는 개념을 도입하면 쉽게 처리할 수 있습니다. ★ 어떤 경우 사용합니까 ? 1)식별자를 사용하는 경우는 명확합니다. 한 행에 여러 조건과 데이터가 있는 경우입니다. 2)보통 필터를 사용하거나 해서 데이터를 수동을 처리하곤 합니다만, 제 생각에 그런 방법은 비효율의 극치이므로, 식별자와 1차원배열 처리 방법인 (HLOOKUP, VLOOKUP을 사용하면 쉽게 처리가 가능합니다. ★ 식별자가 무엇이고 , 역할은 무엇입니까 ? 1) 제가 기억력이 너무 안 좋아서 , 사용할 땐 이거 하나밖에 기억하질 못합니다 . LOOKUP은 유일한 이름을 찾는 방법! 2) 위의 키워드를 요약해보면 , ‘ 서로 다른 이름이 있으면 ’ 찾을 수 있다는 논리입니다 ! 3) 그러니까 , 각 조건이 ‘ 서로 다른 이름 ’ 을 가진다면 위의 방법을 사용할 수 있는 것입니다 . 4) 그렇기 때문에 식별자를 달아주는 것이란 , 유일한 이름을 달아주는 것 입니다 ! ★ 식별자는 어떻게 달아주는 겁니까 ? 1) 정말 간단합니다 . ‘&’ 연산자와 2) 저는 공식처럼 사용합니다 . =( 조건 1)& ”_” &( 조건 2)& ”_” &( 조건 3)&… 3) 그러면 조건은 유일한 이름을 갖게 되겠지요 . 4) 그 다음엔 VLOOKUP 을 사용해주면 되겠습니다 . ( 中谷 育 ちゃんのイメージ に対して) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます...

(Excel) 003- INDIRECT를 사용한 3차원 데이터 배열 처리

(pptx 파일) pptx파일 (예제파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 앞선 세션에서 1 단 , 2 단 데이터 검색방식을 알아보았습니다 . (HLOOKUP, VLOOKUP, INDEX + MATCH) 2) 그런데 회사에서 일을 하다보니까 2 단 행렬이 입력된 다수의 Sheet 가 입력된 경우 가 많았습니다 . 3) 이는 3 차원 (Sheet, 행 , 열 ) 배열로써 , INDIRECT 를 적용 하여 처리할 수 있었습니다 . ★ 3 차원 배열과 주소에 대해서 알아봅시다 . 1) INDIRECT 를 사용하기 앞서서 3 차원 배열과 주소에 대한 이해가 필요합니다 . 2) 한 Sheet 에서 다른 Sheet 에 있는 데이터를 찍어보면 아래와 같은 수식이 나옵니다 . 3) 이렇게 Cell 의 주소를 통해 데이터를 읽어오는 방식을 사용하려고 합니다 ! ★ INDIRECT 의 역할은 무엇입니까 ? 1) 주소를 만들어서 사용하는 방법을 사용할 건데 , 엑셀은 Cell 의 값이 ‘ 단순 값 ’ 인지 ‘ 주소 ’ 인지 알아서 판단하지 못합니다 . 2) INDIRECT 는 Cell 에 있는 값을 주소로 인식하는 방법 입니다 . 3) 예를 들어 , ‘A1’Cell 에 ‘IKU’ 을 넣고 , C1 Cell 에 ‘A1’ 을 넣고 D1 에 ‘=C1’ 을 하면 ‘A1’ 이 나올 것입니다 . 그런데 , 여기서 ‘=INDIRECT(C1) 을 하면 , C1 Cell 의 ‘A1’ 을 주소로 인식하기 때문에 ‘ IKU ’ 가 Return 됩니다 . ★  INDIRECT 로 어떻게  3 차원 배열을 처리할 수 있습니까 ? 1) 앞서  Cell 의 값을  INDIRECT 를 사용하면 주소로 인식할 수 있다고 이야기해드렸습니다 . 2) 그러니까 , Sheet 이름과 , Cell 의 위치를 인식하면  Ce...