반응형

Match 21

선입선출 재고금액 구하기(Let, Scan 함수 등 활용)

1. 문제 아래와 같이 전기 재고가 있고, 입고와 출고가 되었을 때 먼저 들어온 것이 먼저 나가도록 한 후 재고를 구하는 것이 선입선출법(FIFO : First In First Out)입니다. 입고 순서는 아래와 같습니다. 예를 들어 A품목의 경우 전기 재고가 20개 있고, 출고가 140개 되었으므로 입고 물량을 120개 차감해야 하는데, 선입선출이므로 1월 물량부터 순서대로 차감합니다. 1월 물량이 20, 2월 물량이 30, 3월 물량이 30, 4월 물량 30을 더하면 110이 되므로 5월 물량 20개 중 10개가 남고, 6월 물량 10개는 모두 남아서 재고 금액은 5월 10개 * 53 + 6월 10개 * 54 = 1,070이 됩니다. 이와 반대되는 것으로 나중에 들어온 것부터 차감하는 것을 후입선출법..

Excel 2024.02.15

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

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

진행 상태 표시 - 완료, 지연, 진행필요, 미완료(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

Index와 Aggregate 함수의 결합

아래와 같이 성명과 점수가 있을 때 점수를 내림차순으로 표시하고, 점수에 해당하는 성명을 추출하는 것을 수식을 통해 해 보겠습니다. 1. 정렬 데이터탭에서 정렬 명령을 누른 후 정렬 기준으로 점수를 선택하고, 정렬 순서를 내림차순으로 지정하고 확인 버튼을 누르면 쉽게 구할 수 있습니다. 2. index와 Aggregate 함수 이용하기 먼저 Ctrl + Z키를 눌 정렬하기 이전 상태로 되돌립니다. 가. 필요성 Vlookup함수로 찾기 어려운 일치하는 값을 찾을 때 index와 match함수를 이용하는데, match함수는 일치하는 값 또는 유사한 값 하나만의 위치를 찾아주기 때문에 위와 같이 동일한 값이 여러 개 있을 때는 적용하기 어려운 점이 있습니다. 나. 논리 index 함수의 구문은 INDEX(ar..

Excel 2023.08.13

여러 가지 조건을 만족하는 값을 찾을 때(3) - 동적 배열을 이용한 속도 개선

동적 배열을 이용해서 사용자 정의 함수 코드를 수정했더니 훨씬 속도가 빨라졌습니다. 1. 사용자 정의 함수 구문 가. 기존 코드 Option Explicit Option Base 1 Function multi_vlookup(lookup_value, lookup_array, return_array As Range) Dim i As Double '배열은 그대로 두고, 범위일 경우 배열로 변환 Dim Range_to_Array As Variant Debug.Print (vbCrLf & "범위 배열 변환1 : " & Now()) Range_to_Array = lookup_array For i = 1 To UBound(Range_to_Array) If i >= 2 And Len(Range_to_Array(i, 1..

EXCEL - VBA 2023.07.27

여러 가지 조건을 만족하는 값을 찾을 때(1) - VLookup, Index+Match, XLookup함수

1. VLookup 함수의 한계 VLookup 함수의 구문은 VLOOKUP(찾을 값, 표 범위, 몇 번째 컬럼, [유사일치여부]) 인데, 네번째 인수는 선택적 인수이지만 생략하면 유사값을 찾아 반환하므로 정확한 값을 찾도록 0을 입력하거나 False를 선택해야 합니다. 아래와 같이 나라별, 연도별 인구수를 구하고자 할 때 나라와 연도 2가지 조건을 만족해야 하는데 VLookup함수로는 에러가 발생해서 C2셀의 수식 : =VLOOKUP(A2&B2,$F$2:$F$7&$G$2:$G$7&$H$2:$H$7,3,0) C3셀의 수식 : =VLOOKUP(A3&B3,$F$2:$H$7,3,0) 2. Index + Match 함수 Index와 Match 함수를 결합해서 구해야 하며, 365버전이 아니라면 Shift+Ctrl..

Excel 2023.07.24

파워 쿼리와 Vlookup, Index+Match 함수 비교(1)

엑셀에서 자주 사용하는 함수로는 Vlookup과 Index, Macth함수가 있는데, 자꾸 사용하다 보면 익숙해지지만, 처음에는 어떻게 사용하는지 막막한 함수입니다. 엑셀을 사용하기 전에는 간단한 사칙연산과 합계, 평균 등만을 사용하다가 Vlookup함수의 인수로 4가지가 들어가야 한다는 것이 벽으로 다가옵니다. 이러한 것을 간단하게 사용할 수 있게 하는 것이 파워 쿼리의 쿼리 병합 기능입니다. 아래와 같이 일자별, 지점별 매출액 데이터가 있고, 두 번째는 지점별 지점장 데이터, 세 번째는 일자별, 지점별 인원수 데이터가 있다고 할 경우 지점별 지점장과 인원수를 구하려면 아래와 같이 Vlookup 또는 Index, Match함수를 사용해서 구해야 합니다. 1. 해당 지점의 지점장 알아내기 - Vlooku..

중간값에 해당하는 값이 2개일 때 2개 모두 표시하기

예제는 https://cafe.naver.com/excelmaster/217949에서 가져왔습니다. 중간값에 해당하는 월이 있다면 index와 match함수를 이용해 월을 구할 수 있는데, 2개일 경우는 보다 작은 값에 해당하는 월과 보다 큰 값에 해당하는 월을 가져와야 하므로 복잡합니다. 1. 일치하는 값이 1개일 때 해당하는 월 구하기 최솟값에 해당하는 월을 구하는 D4셀의 수식은 =INDEX($C$9:$C$20,MATCH(C4,$D$9:$D$20,0))로 C4셀과 일치하는 값을 $D$9:$D$20에서 찾는데 0을 인수로 줘서 정확히 일치하는 순번을 찾으므로 MATCH(C4,$D$9:$D$20,0)의 값은 2입니다. 따라서 =INDEX($C$9:$C$20,2)가 되므로 $C$9:$C$20에서 두 번째..

Excel 2023.05.30

조견표에서 일치하는 값 찾기(2) - 이름 관리자, Offset, Match, Indirect 함수

3. 이름 관리자를 이용하는 경우 C3셀부터 E3셀까지는 계절에 해당하므로 수식 탭의 이름 관리자를 클릭한 다음 새로 만들기 버튼을 누르고, 이름에는 '계절', 설명에는 '계절에 해당하는 셀', 참조 대상에는 C2셀부터 마우스로 E2셀까지 끌어 지정합니다. 그리고, 확인 버튼을 누르면 아래와 같이 '계절'이란 이름이 생기고 값에는 여름철 등이 표시되고, 참조대상은 아래를 보면 ='Sheet1 (2)'!$C$2:$E$2입니다. 또다시 새로 만들기를 한 후 부하는 A3에서 A8셀로 지정하고, 요금구분은 B3셀에서 B8셀로 지정하고, 더할 범위는 C3:E8셀로 지정합니다. 그러면 아래와 같이 계절, 부하, 요금, 요금구분 등 네 개의 이름이 정의되었습니다. 이제 C13셀의 수식에서 $A$3:$A$8이라는 부분..

Excel 2023.04.03
반응형