직원 데이터로 구성된 대규모 테이블이 있고 기본 데이터 세트에서 필터링된 데이터 세트를 사용하여 다른 워크시트에 테이블을 만들고 싶습니다. 저는 광범위한 VBA 매크로 작성 경험이 있으며 데이터베이스를 사용하여 원하는 것을 달성할 수 있으며 SQL은 몇 분 안에 완료할 수 있지만 부팅하면 Ant Hill을 따라갈 것 같은 느낌이 듭니다.
피벗 테이블을 사용하여 시도해 보았지만 피벗 테이블에 대한 경험이 없어 만족스러운 결과를 얻을 수 없었습니다.
대규모 직원 데이터 세트에는 시작 날짜, 현재 부서, 전문 기술 세트 등과 같은 항목이 포함됩니다(예상하는 일반적인 항목).
예를 들어 X 부서에서 일하는 모든 직원이나 Y 전문 기술을 가진 모든 직원을 보여주는 다른 워크시트에 동적 테이블을 만들고 싶습니다. 분명히 데이터가 변경되거나 기본 데이터 세트에 추가될 때 워크시트 테이블이 업데이트되기를 원합니다.
여기에 간단한 해결책이 있다고 생각하는 것이 맞습니까? 아니면 실제 DB를 사용하여 해결해야 합니까?
답변1
Excel 함수를 기반으로 원본 테이블의 레코드를 다른 테이블로 필터링/추출하는 방법을 제안하고 싶습니다.
소스 테이블:
작동 방식:
- 기준 셀이 비어 있으면 수식이 레코드를 반환하지 않은 것입니다.
- 수식은 단일 기준뿐만 아니라 다중 기준에도 적용됩니다.
상황 1:
상황 2:
- 셀의 배열 수식
B31
:
{=IFERROR(IF(AND(ISBLANK($B$27),ISBLANK($C$27),ISBLANK($D$27),ISBLANK($E$27),ISBLANK($F$27),ISBLANK($G$27),ISBLANK($H$27))," ",INDEX($B$2:$H$21,SMALL(IF(MMULT(($B$2:$H$21=$B$27:$H$27)*1,{1;1;1;1;1;1;1})=COUNTA($B$27:$H$27),MATCH(ROW($B$2:$B$21),ROW($B$2:$B$21)),""),ROWS($A$1:A1)),COLUMNS($A$1:A1))),"")}
- 수식 마무리Ctrl+Shift+Enter& 가로질러 채워주세요.
- 이 운동의 주요 특징은
MMULT
기능입니다. - MMULT(행렬 곱셈)는 두 배열의 행렬 곱을 반환합니다.
- array1의 열 개수는 array2의 행 개수와 같습니다.
- 배열 결과에는 array1과 동일한 수의 행과 array2와 동일한 수의 열이 포함됩니다.
필요에 따라 수식의 셀 참조를 조정합니다.