microsoft excel

열 A의 값을 열 B, C 또는 D의 값과 일치시키고 일치 항목이 발견된 열의 이름을 반환하는 방법

다음과 같은 테이블이 있습니다(그러나 수천 개의 행).

A B C D
a1 a3 a1 a4
a2 a2 a5
a3
a4
a5

아이디어는 A의 각 요소가 속한 "카테고리"(B, C 및 D가 다른 범주임)를 알려주는 또 다른 열 E를 추가하는 것으로 끝납니다.

내 생각에는 B:D에서 A의 모든 값을 검색하고 일치 항목을 찾으면 일치 항목이 발견된 열의 이름을 반환하고 싶습니다.

불행히도 저는 Excel(저는 일반적으로 R을 사용합니다)을 사용하는 데 익숙하지 않고 제 요소가 약간 부족합니다. 도움을 주시면 감사하겠습니다!

원하는 출력은 다음과 같습니다.

A B C D E
a1 a3 a1 a4 "C"
a2 a2 a5 "C"
a3 "B"
a4 "D"
a5 "D"

이 솔루션을 사용해 보세요.

아래 스크린샷을 참조하세요.

E1에서 공식은 다음과 같습니다.

=SUBSTITUTE(ADDRESS(1,MAX(IF($B$1:$D$5=A1,COLUMN($B$1:$D$5),0)),4),1,"")

이 수식을 작성한 후 키를 눌러 이것을 배열 수식으로 변환해야 합니다.CTRL+SHIFT+ENTER수식 입력줄 내에서. 수식은 배열 수식임을 나타내기 위해 자동으로 중괄호로 묶입니다.

이 단계 없이는 올바르게 작동하지 않습니다.

원하는 행까지 아래로 끕니다.

IFERROR를 사용하여 #VALUE 또는 #N/A 오류를 제거하고 값을 찾을 수 없는 경우 공백으로 바꿀 수도 있습니다.

목록 구분 문자에 따라 ; 대신 일부 지역에서는 경우에 따라 수식에서 쉼표를 세미콜론으로 바꿔야 할 수도 있습니다.

열 문자를 큰따옴표로 묶으려면.

=""""&SUBSTITUTE(ADDRESS(1,MAX(IF($B$1:$D$5=A1,COLUMN($B$1:$D$5),0)),4),1,"")&""""



한 번 이상 발생할 가능성이 있는 경우 다음과 같이 시도하십시오.

=TEXTJOIN(",",,SUBSTITUTE(IFERROR(SORT(ADDRESS(1,($A2=B2:D6)*COLUMN(B2:D6),4)),""),"1",""))

열도 정렬합니다.

Excel 열 레이블과 일치하는 리터럴 문자 레이블이 아닌 다른 항목이 있는 경우 다음에서 모두 수집합니다. SORT 를 사용하여 열 순서로 정렬하거나 실제 헤더 결과를 알파벳순으로 정렬할 수 있습니다.

=TEXTJOIN(",",,IFERROR(SWITCH(SUBSTITUTE(IFERROR(SORT(ADDRESS(1,($A2=B2:D6)*COLUMN(B2:D6),4)),""),"1",""),"B",B1,"C",C1,"D",D1),""))