자동으로 두 개의 엑셀 데이터 테이블을 동기화 상태로 유지 (VBA 제외)


0

나는 주식 포트폴리오를 추적하기위한 통합 문서를 작성하고있다. 기본 시트에는 트랜잭션 목록이있는 테이블이 들어 있습니다. 여기에서 원가 기초, 반품 등과 같은 고유 주식 기호 당 단 하나의 행만있는 다른 시트의 개요 표를 작성하려고합니다. 문제점은 행을 추가 할 때 개요 표를 올바르게 업데이트하지 못했습니다. 트랜잭션 테이블에. 가장 가까운 것은 다음과 같습니다.

http://www.get-digital-help.com/2009/04/14/create-a-unique-alphabetically-sorted-list-extracted-from-a-column/

그러나 개요 시트의 기본 열에있는 모든 셀에 해당 수식을 적용해야합니다. 그리고 테이블의 범위가 유효 해지면 새로운 행을 포함하도록 확장되지 않습니다. 본질적으로 나는 행을 테이블에 자동으로 추가하고 VBA를 사용하지 않고 다른 테이블을 기반으로 이전 행 수식을 복사하는 방법을 찾고 있습니다.

구체적인 예를 들어 내 목표를 더 잘 설명 할 수 있습니다. GOOG가 방금 추가되었고 다른 거래가 이미 존재했다고 가정합니다.

이것은 자동 업데이트 동작을 얻는 데 필요한 옷장입니다.

Sheet1
Symbol     Type    Shares    Price
F          Buy     100       12
MSFT       Buy     100       25  
MSFT       Buy     50        28
F          Buy     100       16
GOOG       Buy     25        550

Sheet2
Symbol                              Quantity
F                                   200     
MSFT                                150
------------------------------------------------------------ // Table Boundary
GOOG                                25
{=UNIQUE_LIST(Sheet1[Symbol], A5)}  =SUMIF(Sheet1[Symbol], A5, Sheet1[Shares])
{=UNIQUE_LIST(Sheet1[Symbol], A6)}  =SUMIF(Sheet1[Symbol], A6, Sheet1[Shares])
... // Formulas start at row 2 and extend down tons of extra rows
    // Table boundary didn't extend to include GOOG

이론적으로 Sheet2는 필요할 때만 수식이 복사되는 곳에서 더보기를 원합니다.

Sheet2
Symbol                              Quantity
F                                   200     
MSFT                                150
GOOG                                25
------------------------------------------------------------ // Table Boundary
// Table extended and no extra formulas

행 추가하기

답변:


0

일반적으로 Excel로 동일한 결과를 얻는 방법에는 여러 가지가 있음을 기억하십시오. 어쩌면 데이터베이스 기능을 사용할 수 있습니다. 예를 들어, Sheet1! A : D로 데이터베이스를 참조하거나 해당 참조를 참조하는 이름을 정의한 경우 원하는만큼 많은 행을 추가 할 수 있습니다. 유감스럽게도 데이터베이스 기능은 기준을 지정해야하는 방식 때문에 사용하기가 어렵습니다.

또 다른 옵션은 배열 수식을 사용하는 것입니다. 다음과 같은 : {= sum (if (sheet1! a2 : a999 = "MSFT", sheet1! b2 : b999,0))}


내가 OP에서 언급했듯이, 나는 임의로 넓은 범위의 데이터를 참조하고 싶지 않다. Sheet1에 행을 추가 할 때 Sheet2의 테이블이 자동으로 커지기를 원합니다. 이것은 시트 2의 첫 번째 열 아래까지 비교적 복잡한 수식을 복사 할 필요가 없기 위해 필요합니다. 또한 Sheet2의 첫 번째 열에 구조화 된 참조를 사용하여 웹 쿼리, 예. Sheet2Table [기호]. 내 시나리오를 더 잘 설명하기 위해 예제를 업데이트하겠습니다.
Neil

0

당신은 쓰기:

그러나 개요 시트의 기본 열에있는 모든 셀에 해당 수식을 적용해야합니다. 그리고 테이블의 범위가 유효 해지면 새로운 행을 포함하도록 확장되지 않습니다.

이 두 가지 요구 사항에서 벗어날 수는 없습니다. 적어도 첫 번째 시트에 목록의 최대 길이를 설정하지 마십시오.


0

닐,

XL 2003 또는 이후 버전을 사용하는 경우 List (XL 2003) 또는 Table (XL 2007, 2010에서 이름이 바뀐 것과 동일한)에 원본 데이터를 넣어야합니다. 그런 다음 목록 / 표를 다른 시트의 피벗 테이블 원본으로 사용하십시오. 이는 데이터와 보고서 모두에 대한 귀하의 요구 사항을 이해합니다. 피벗 소스가 목록 / 테이블과 함께 확장 및 축소됩니다.

유일한주의 사항은 소스 데이터가 변경 될 때 피벗 테이블이 자동으로 새로 고쳐지지 않는다는 것입니다. 새로 고침 버튼을 눌러야합니다. VBA를 사용할 수있는 경우 목록 / 테이블 내의 셀이 변경 될 때마다 피벗 테이블 새로 고침을 트리거하는 이벤트 코드를 작성할 수 있습니다.


-1

누군가 내 질문에서 영감을 얻었고이 작업을 수행하는 방법에 대한 전체 블로그 게시물을 작성한 것 같습니다.

http://www.get-digital-help.com/2011/01/31/tracking-a-stock-portfolio-in-excel-auto-update/


5
답변으로 연결되는 링크는 누구에게나 도움이되지 않습니다. 특히 해당 웹 사이트가 오프라인이되는 경우에 특히 유용합니다. 수퍼 유저에게 실제 답변을 작성해야합니다.
allquixotic

-1

피벗 테이블을 많이 사용합니다. 배열을 설정할 때 엔딩 셀을 수동으로 입력하십시오.

예를 들어, 범위 A11 : C2500으로 시작하는 데이터가 있습니다.

데이터가 10000 행으로 증가 할 것으로 예상된다면 배열을 수동으로 변경하여 A11 : C15000을 읽으면 성장 여지를 확보 할 수 있습니다.

이렇게하면 새 항목이 트랜잭션 목록에 추가 될 때 Pivot 테이블 agrow가 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.