Excel에서 셀 내용을 통해 명명 된 테이블 열을 동적으로 참조


12

Excel 2007에서 Excel 테이블 열을 동적으로 참조하려면 어떻게합니까? 명명 된 테이블의 명명 된 열을 참조하고 참조 된 열은 셀 값에 따라 다릅니다.

Excel에 테이블이 있습니다 ( Table1 이라고합시다 ). 해당 열 중 하나와 해당 열의 COUNT숫자 를 참조하고 싶습니다 . A1다음 결과를 얻을 수 있도록 다른 셀 ( ) 의 값에서 참조 된 열을 동적으로 식별하려고합니다 . 변경하면 Table1 [ DynamicallyReferencedColumnName ]A1 을 계산하는 수식이 새 참조로 업데이트됩니다.

예:

  • A1= 인 경우 names    수식은 같습니다 COUNT(Table1[names]).
  • A1= 인 경우 lastname수식은 같습니다 COUNT(Table1[lastname]).

을 사용하려고 =COUNT(Table1[INDIRECT("$A$1")])했지만 Excel에 수식에 오류가 포함되어 있다고합니다.

어떻게해야합니까?


추신 : 관련이있을 수있는이 MSDN 문서를 찾았습니다 : Excel recalculation .


어떤 Excel 버전을 사용하고 있습니까?
CharlieRB

현재 Excel 2007을 사용하여
rcphq

이 질문은 "구조화 된 참조의 동적 구성 요소를 Excel에서 참조"로 표현할 수 있다고 생각합니다.
jiggunjer

답변:


13

당신은 거의 그것을 가지고 INDIRECT()있었지만, 당신의 논리는 약간 벗어났습니다. 대신 이것을 시도하십시오 :

=COUNT(INDIRECT("Table1["&A1&"]"))

기억해야 할 열쇠 INDIRECT()는 첫 번째 인수에 텍스트 (예 : 문자열) 만 사용 한다는 것입니다. 따라서 테이블 참조의 모든 부분을 함수에 텍스트로 전달해야합니다.


실제로 효과가 있었으므로 전체 테이블을 참조해야했습니다. 이것은 효과가 있었다! 감사!
rcphq

16

INDIRECT 방법을 사용하는 것은 가능하지만 일시적인 기능이므로 스프레드 시트에 계산에 큰 영향을 줄 수 있으므로 가능하면 항상 피하는 것이 가장 좋습니다.

원하는 것을 달성하는 비 휘발성 대안은 INDEX / MATCH를 사용하는 것입니다.

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))

-팀


Excelent, 나는 실제로이 방법을 나중에 발견하여 그 이후로 사용 해 왔습니다. 우연히 나는 12 장이 넘는 시트에서 간접적으로 사용했던 이전 스프레드 시트에서 큰 속도 저하를 눈치 채기 시작했습니다. 감사!
rcphq

2

첫 번째 단계는 참조 할 열 이름이 포함 된 텍스트 셀을 설정합니다 (예 : $ A $ 1) $ A $ 1에는 "Column2"가 포함됩니다.

$ A $ 1이 참조하는 열의 개수를 찾으려면 = Count (indirect ( "Table1 ["& $ a $ 1 & "]"))

이 간접 방법은 테이블 참조의 모든 부분을 구성하는 데 사용될 수 있으며 예를 들어 다른 테이블에서 조회하도록 구성 할 수도 있습니다.

팁. $ a $ 1 셀이 단일 테이블의 헤더를 가리키는 드롭 다운 목록으로 유효성 검증 된 경우, 테이블에서 헤더 제목에 대한 변경 사항의 열 수에 대한 변경 사항이 선택됩니다.


1
(1) 첫 번째 단계 : 원하는 열의 이름을 같은 셀에 넣으십시오 A1.  OP는 이미이 작업을 수행했으며 문제에서 그렇게 말합니다.   (2) 두 번째 단계는 Excellll의 답변의 정확한 사본입니다 . (4) A1유효한 열 이름의 드롭 다운으로 구성 하는 것이 좋은 생각처럼 보이지만 대답의 마지막 단락의 나머지 부분을 이해하지 못합니다.
Scott

1

다음은 Excel의 구조적 참조에 관한 매우 유용한 기사입니다. Excel 2010에서는 Excel 2007과 약간 다르게 작동합니다.

Excel 테이블에서 구조적 참조 사용

기본적으로 테이블을 참조한 다음 테이블 내의 열을 참조합니다.

일반 엑셀 테이블

이 예에서는 다음과 같이 표 1 열 1을 참조 할 수 있습니다.

=COUNT(Table1[Column1])

테이블에서 머리글 열의 이름을 지정할 수 있습니다. Column1의 이름을 Sales로 바꾼 경우 수식은 다음과 같습니다.

=COUNT(Table1[Sales])

그래, 내 테이블은 다른 열로 올바르게 이름이 지정됩니다. 내가 원하는 것은 셀 값에 따라 원하는 열을 알려주는 방법입니다. =COUNT(Table1[A1])A1은 열 이름을 포함하려는 셀입니다.
rcphq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.