다른 테이블의 서브 쿼리인 테이블 생성

다른 테이블의 서브 쿼리인 테이블 생성

직원 데이터로 구성된 대규모 테이블이 있고 기본 데이터 세트에서 필터링된 데이터 세트를 사용하여 다른 워크시트에 테이블을 만들고 싶습니다. 저는 광범위한 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와 동일한 수의 열이 포함됩니다.

필요에 따라 수식의 셀 참조를 조정합니다.

관련 정보