반응형

iferror 18

문자열 중 원문자 지우기(4) - Scan, Reduce

이번에는 Reduce와 Scan 함수를 이용해 원문자를 제거해 보겠습니다.   1. Reduce 함수를 이용한 수식가. Reduce 함수의 구문=REDUCE([initial_value], array, lambda(accumulator, value))initial_value는 초기값, array는 배열, accumulator는 initial_value와 array를 받는 것이고,value는 accumulator를 이용해서 값을 구하는 수식입니다. 나. 원문자가 아니라면 한 글자씩  결합A2셀을 대상으로 A22셀에서 수식을 작성하겠습니다. 먼저 초기값은 문자열을 결합할 것이므로 ""으로 해야 합니다. 비워두면 0으로 생각해서 이상한 값이 나옵니다. array는 배열인데, 글자를 한 글자씩 구분하기 위해 1부..

Excel 2024.05.14

문자열 중 원문자 지우기(3) - TextJoin, Sequence

이번에는 Textjoin 함수를 이용해 원문자가 아닌 글자만 결합하는 수식을 작성해 보겠습니다. 마찬가지로 B3셀을 갖고 원문자를 제외한 글자만 결합하는 수식을 B18셀에 작성해 보겠습니다. 1. TextJoin 함수TextJoin 함수의 구문은 TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)로서첫 번째 인수는 구분자, 두 번째는 빈 셀을 무시할지 여부, 세 번째부터는 결합한 문자열입니다. 그런데 여기서는 글자를 하나씩 가져와서 Unicode가 9312보다 작거나 9331보다 크다면 결합하지 않는 것으로 하면 됩니다. 2. 수식가. 조건식 만들기첫 번째 인수인 결합할 때 사용할 구분자는 없으므로 공백으로 하고,두 번째 빈셀 무시도 예이므로 입력하지 않고 넘어..

Excel 2024.05.13

문자열 중 원문자 지우기(1) - Unicode, Substitute

1. 문제문자열 중에서 원문자만 지우려고 합니다.  자세히 살펴보면 원문자가 문자열의 맨 뒷부분에만 있고, 원문자가 하나뿐만 아니라 3개까지 있습니다. 2. 원문자의 코드 값 알아내기B3셀에서 ①만 복사한 후 W1셀에 붙여 넣고코드 값을 알아내기 위해 X1셀에 =code(w1)이라고 입력하면 43239가 구해지고,Y1셀에 =unicode(w1)이라고 입력하면 9312가 구해집니다. Code 함수는 윈도우에서는 ANSI 코드값을 반환하고, Unicode에 대한 설명을 나무위키에서 찾아보면 "유니코드(Unicode)는 전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식이다. 유니코드 컨소시엄(Unicode Consortium)에서 제정, 관리한다."라고 되어 있습니다. 따라서, Code 값 또..

Excel 2024.05.09

선입선출법에 따른 재고월 구하기

1. 문제아래와 같이 월별 매입수량과 매출수량이 있을 때 선입선출법에 따라 남는 매입월(재고월)이 어떻게 되는지 구해보려고 합니다.예를 들어 A품목의 경우 매입이 워낙 많고, 매출은 겨우 158개로 기초 재고도 소진하고 있지 못하며,F품목의 경우는 5월까지의 매출 수량이 1,031개로 기초재고 1000개를 소진하고, 2월 매입 물량 34개 중 31개를 소진하고 3개가 남게 되므로 재고 월은 2월이 됩니다.  2. 해법매입물량과 매출물량을 비교해서 매입물량이 최종적으로 매출물량을 커버하고 남는 달이 재고월이 됩니다.따라서, 매입물량도 더해가고, 매출물량도 더해가야 하며, 수량이 초과되는지 여부를 판단해야 하므로 기존까지의 Match함수와 sum함수로는 처리하기가 너무 복잡해지는데,Microsoft 365에..

Excel 2024.04.29

한글이 아닌 엑셀로 하는 메일 머지(1)

1. 문제고지서 서식은 한 장이고, 인쇄할 내용을 아래 명단 시트에서 순서대로 찾아서 인쇄하고자 할 때 먼저 생각나는 것이 워드나 한글의 메일 머지 기능입니다. 그러나, 여기서는 엑셀의 매크로로 구현하고자 하는 것입니다. 인쇄할 내용을 채우는 방법이 두 가지가 있습니다. 이름만 입력하면 나머지 내용은 수식으로 가져오는 방법, 이름뿐만 아니라 나머지 내용까지 매크로로 처리하는 방법인데, 한 가지씩 알아보겠습니다. 2. 해법 1 : 이름만 입력하고 나머지는 수식으로 가져오는 방법 가. 연번별로 이름에 순번 부여하기(1) 로직 연번을 기준으로 인쇄하는데, 연번에 동일인이 있다면 같은 고지서에 인쇄하고, 다른 사람이라면 별도의 고지서에 인쇄해야 합니다. 이를 위해서는 고지서 발행 기준인 순번과 동일인여부 순번 ..

EXCEL - VBA 2024.03.27

중복된 값은 제외하고 문자열 연결하기

1. 문제 B열부터 D열까지 고객, 쿠폰, 전화번호를 연결하는데 전화번호가 1개라면 한번씩만 연결하면 되는데, 6행에서 8행까지는 전화번호가 같으므로 한번 고객, 쿠폰과 전화번호를 연결한 다음부터는 쿠폰 번호만 연결하려고 하는 것입니다. 경우에 따라 결합을 달리해야 하기 때문에 문제가 되는 것입니다. 2. 해법 1 : TextJoin 함수 적용 엑셀 버전이 TestJoin 함수를 지원하지 않는다면(안된다면) 3번을 참고 바랍니다. ​ 규칙이 고객, 쿠폰 번호, 전화번호를 연결해서 표시하는 것인데, 전화번호가 같으면 고객과 전화번호는 제외하고 쿠폰 번호만 연결하는 것입니다. ​ 따라서, 전화번호의 개수를 계산한 후 1개면 고객부터 전화번호까지 모두 연결하면 되고, ​ 1개를 초과하면 고객부터 전화번호까지를..

Excel 2024.03.12

근무표 유형 변경하기(365 이전 버전용)

1. 문제 아래와 같이 직원별, 일자별 근무 현황이 있는데, 근무 유형별, 일자별로 누가 근무했는지와 시간외근무를 오른쪽 '시간외근무 유형'에 따라 괄호 안에 시간수를 입력해서 표시하려고 합니다. 원 데이터는 다른 시트에 있는건데 이해와 설명의 편의를 위해 한 개 시트에 모았습니다. 2. 해결 방안 365 버전용 함수를 이용하는 방법과 이전 버전용 함수를 이용하는 두 가지 방법에 대해 알아보겠습니다. 가. 365 이전 버전 (1) d1, d2, n1, n2 유형에 따라 일자별 근무자 및 괄호안에 숫자 표시 일자와 유형 2가지 조건을 만족해야 하므로 두가지 조건을 * 연산자로 연결하면 =($B$3:$H$8=K$2)*($B$2:$H$2=$J3)이 되는데, #분산!라고 표시되고, 6*7의 크기로 테두리가 쳐집..

Excel 2024.03.08

거래처명에서 일치하는 고객명 찾기(2) - Scan 함수

나. 365 버전 (1) 사용되는 함수에 대한 설명 (가) Filter 함수 Filter함수는 필터 명령을 함수로 구현한 것입니다. 구문은 Filter( sourcearray , match [, include ] [, compare ] )인데, 첫 번째 인수는 필터 처리할 배열(범위)로서 머리글은 포함하지 않습니다., 두 번째 인수는 필터 조건으로 필드명=값 식으로 입력하는데, 참에 해당하는 조건식을 입력해도 됩니다. (나) Sort 함수 데이터 정렬명령을 함수로 구현한 것으로 구문은 =SORT(array,[sort_index],[sort_order],[by_col])으로서 첫 번째 인수는 정렬할 배열(범위)이고, 두 번째 인수는 정렬기준인 열, 세 번째 인수는 내림차순 또는 오름차순을 지정하는 것으로 ..

Excel 2024.03.05

거래처명에서 일치하는 고객명 찾기(1) - Find 함수

1. 문제 아래와 같이 당월 시트의 B열에는 거래처명이 있고, 고객 시트에 고객명이 있는데, 거래처명 중 일치하는 고객명을 추출하는데, 김영희와 영희는 모두 만족하지만 긴 고객명을 출력해야 합니다. 2. 해결 방안 여러 가지 방법이 있을 수 있습니다. Find 함수를 이용할 수도 있고, 365 버전이라면 Scan 함수를 이용할 수도 있습니다. 각각 해결 방법을 알아보겠습니다. 가. Find 함수 (1) Find 함수의 구문 FIND(find_text, within_text, [start_num])로서 find_text는 찾을 문자열, within_text는 찾는 문자가 들어 있는 문자열 또는 범위, start_num은 찾기 시작할 위치인데, 대괄호 안에 있으므로 옵션입니다. (2) 일치하는 고객명의 위치..

Excel 2024.03.04

월말 데이터 값만 더해서 평균을 구하는 법

1. 문제 아래와 같이 일별 데이터가 있는데, 1월은 말일까지 있지만 4월의 경우는 2023/4/30일이 일요일이라 근무일인 4/28까지의 데이터만 있는 특이점이 있습니다. 따라서, 단순히 EOMonth로 말일을 구할 수 없는 한계가 있으며, 5월은 2일까지뿐이 없어서 월말이라고 볼 수가 없습니다. 이와 같은 경우 해결책에 대해 알아보겠습니다. 2. Scan 함수의 구문 Microsoft 공식 홈페이지의 도움말을 보면 =SCAN ([initial_value], array, lambda(accumulator, value)) 라고 되어 있는데, lambda의 인수로 세 번째에 Calculation이 있어야 하는데 누락된 것 같습니다. ​ 맞는 구문은 =SCAN ([initial_value], array, l..

Excel 2024.02.26
반응형