
동일한 Excel 책 내에서 한 Excel 시트의 열을 다른 Excel 시트로 미러링하려고 합니다. 목표는 첫 번째 시트가 편집될 때 두 번째 시트를 업데이트하는 것입니다. 기본적으로 첫 번째 시트에 행을 추가/제거하면 두 번째 시트에서도 자동으로 동일한 작업이 수행됩니다.
내 칼럼에는 직원 이름이 있으며, 사람들이 사무실에 들어오고 나가면 이에 따라 직원 이름을 추가/제거할 것입니다. 내 시트는 서로 다른 데이터를 추적하지만 직원은 모두 동일합니다. 첫 번째 시트는 기본 시트이고 나머지는 그에 따라 데이터를 가져옵니다. 미러링 공식이 작동할까요? 또한 전체 열에 적용하려면 어떻게 해야 합니까?
답변1
VBA가 없는 아이디어는 다음과 같습니다. "오프셋".
원본 데이터가 "Sheet1"에 있고 "Sheet2"의 모든 셀을 미러링한다고 가정해 보겠습니다. Sheet2의 모든 셀에 대해 다음을 사용할 수 있습니다.
=OFFSET(Sheet1!$A$1,Row(A1)-1,COLUMN(A1)-1,1,1)
Sheet1!$A$1
: 당신은 주요 참조 셀입니다. 이 셀은 이동하거나 삭제할 수 없는 유일한 셀입니다. 이러한 일이 발생하지 않도록 하려면 열 1을 비워두고 숨길 수 있습니다.Row(A1)-1
: "Row(A1)"은 현재 있는 Sheet2의 행을 파악합니다. "-1"은 오프셋을 중화하는 것입니다(다음 행이 아니라 현재 있는 동일한 행을 읽고 싶지 않음).COLUMN(A1)-1
: 위와 동일하지만 열을 파악하기 위한 것입니다.,1,1)
: 범위의 크기를 셀(1 by)로 설정합니다.
기본 참조 셀(이 예에서는 A1)을 제거하지 않는 한 Sheet1에서 무엇을 하든 작동할 것이라고 생각합니다.
이 방법으로 발견할 수 있는 몇 가지 문제는 다음과 같습니다.
- 데이터(시트1) 사이에 공백이 있는 경우 많은 0이 표시되는 것을 방지하기 위해 일부 서식 지정이나 추가 수식이 필요할 수 있습니다.
- 일부 수식을 "개수" 또는 "평균"으로 사용하려고 하면 결과가 이러한 0에 의해 변경될 수 있습니다. 이를 숨길 수는 있지만 여전히 수식에 영향을 미칩니다.
답변2
이는 간단한 공식으로는 불가능합니다. Sheet1에서 행을 추가하거나 제거하는 경우 Sheet2에서 행을 추가하거나 제거하는 데 수식만으로는 충분하지 않습니다. 그러기 위해서는 다른 접근 방식이 필요합니다.
한 가지 옵션은 새 행의 삭제 및 추가를 관리하는 VBA를 만드는 것입니다.
또 다른 방법은 행을 삭제하는 대신 숨기는 것입니다. 직원이 활성 또는 비활성으로 표시된 열을 추가합니다. 그런 다음 테이블을 필터링하여 비활성 직원을 숨깁니다.
수식을 사용하여 Sheet1의 이름을 Sheet2로 가져오고 각 행의 활성/비활성 값을 가져올 수도 있습니다. 예를 들어 이름이 시트1의 A열에 있으면 시트2에서 이를 사용합니다.
=색인(시트1!$A:$A,행())
상태(활성/비활성)가 B 열에 있는 경우 =index(Sheet1!$A:$A,row())
다른 열을 사용한 다음 해당 열을 필터링합니다.
그러나 한 가지 큰 위험이 내재되어 있습니다. Sheet1에서 직원의 순서가 변경되면 Sheet2의 데이터가 모두 잘못됩니다. 직원의 순서는 여전히 Sheet1의 순서와 일치하지만 나머지 데이터는 새 정렬 순서로 이동되지 않습니다.
VBA를 사용한 접근 방식이 더 강력합니다.