%2C%20))%20%EC%A1%B0%ED%95%A9%EC%9D%80%20%EB%B2%94%EC%9C%84%EC%97%90%EC%84%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%EB%A7%8C%20TABLE%20%ED%98%95%EC%8B%9D%EC%9D%98%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
설정:
데이터가 포함된 두 개의 Excel 시트가 있습니다. 둘 다 "테이블 형식"입니다. 하나는 많은 행과 열(필드)로 구성된 대규모 데이터 세트이고, 다른 하나는 단 2개의 행과 2개의 열(필드)로 구성된 일종의 "사전"입니다.
1 번 테이블 (데이터 세트)
+----------------------------------------------------+
| month | week | productName | price | sold pcs. |
+---------------------------------------------------+|
| jan | 1 | heavy | (formula) | 25 |
| jan | 2 | heavy | (formula) | 51 |
| jan | 3 | heavy | (formula) | 06 |
| jan | 4 | heavy | (formula) | 00 |
| jan | 1 | light | (formula) | 39 |
| jan | 2 | light | (formula) | 11 |
| jan | 3 | light | (formula) | 98 |
표2 (딕셔너리)
+---------------------+
| productName | price |
+---------------------+
| heavy | 125 |
| light | 65 |
내가 해야하는 것:
내가 해야 할 일은 값을 가져오는 것입니다(제품 가격)을 사전에서 대규모 데이터 세트로 가져옵니다. 여기서 특정 값(제품 이름) 성냥.
내가 시도한 것:
=INDEX(Table2[@price], MATCH(Table1[@productName], Table2[@productName], 0))
범위로 작업할 때 이 조합은 매우 효과적입니다. 그러나 이렇게 하면 데이터 형식이 테이블로 지정되어 Table1의 첫 번째 행에서만 일치합니다.
이것이 내가 얻은 결과입니다:
+-------------------------------------------------+
| month | week | productName | price | sold pcs. |
+-------------------------------------------------+
| jan | 1 | heavy | 125 | 25 |
| jan | 2 | heavy | #N/A | 51 |
| jan | 3 | heavy | #VALUE | 06 |
| jan | 4 | heavy | #VALUE | 00 |
| jan | 1 | light | #VALUE | 39 |
| jan | 2 | light | #VALUE | 11 |
| jan | 3 | light | #VALUE | 98 |
첫 번째 행이 제대로 일치하고 두 번째 행(역시 첫 번째 행과 동일)을 찾을 수 없으며 거기에서 오류 값이 시작됩니다. 어떻게 해야 하나요?
감사해요
답변1
명명된 범위를 잘못 사용하고 있습니다.
Table2[@productName]
테이블의 단일 요소를 가리킵니다.Table2[productName]
전체 열을 가리킨다Table2
헤더를 제외한 테이블의 모든 열과 줄을 가리킵니다.
VLOOKUP을 사용하면 쉽게 할 수 있습니다.
=INDEX(Table2,MATCH([@productName],Table2[productName],0),MATCH("price",Table2[#Headers],0))
대체 솔루션:
=VLOOKUP([@productName],Table2,2,0)
=VLOOKUP([@productName],Table2,MATCH("price",Table2[#Headers]),0)
또는 각 productName이 고유한 경우 SUMIF를 사용할 수 있습니다.
=SUMIF(Table2[productName],[@productName],Table2[price])
답변2
이것은 당신에게 도움이 될 것입니다:
=INDEX(Table2[[#All],[Price]],MATCH([@productName],Table2[[#All],[ProductName]],0),1)
메모. #ALL을 사용하면 ROW뿐만 아니라 전체 열이 선택됩니다.