답변1
다음 배열 수식은 이름이 동일하더라도 작동합니다. + + B2
로 입력한 후 채워주세요.CtrlShiftEnter
이것은 샘플 데이터를 기반으로 고정 범위를 사용합니다.
{=IFERROR(INDEX(A:A,SMALL(IF(A$1:A$10<>"",ROW(A$1:A$10),""),ROW()-ROW(A$1)+1)),"")}
이것은 동적 범위를 사용하여 열에 더 많은 이름을 추가하면 자동으로 조정됩니다 A:A
.
=IFERROR(INDEX(A:A,SMALL(IF(A$1:INDEX(A:A,MATCH("*",A:A,-1))<>"",ROW(A$1:INDEX(A:A,MATCH("*",A:A,-1))),""),ROW()-ROW(A$1)+1)),"")
확장된 형태의 위와 동일한 동적 공식:
=
IFERROR(
INDEX(
A:A
, SMALL(
IF(
A$1:INDEX(A:A,MATCH("*",A:A,-1))<>""
, ROW(A$1:INDEX(A:A,MATCH("*",A:A,-1)))
, ""
)
, ROW()-ROW(A$1)+1
)
)
, ""
)
보시다시피, 이 두 번째 공식은 가 모두 로 A$10
대체된 첫 번째 공식입니다 INDEX(A:A,MATCH("*",A:A,-1))
.
설명:
이 IF()
기능은 다음과 동일합니다.
IF(
{"";"Camilo Georgi";"";"Carla Suarez Navarro";"";"Belinda Bencic";"";"Grace Min";"";"Johanna Larsson"}<>""
, {1;2;3;4;5;6;7;8;9;10}
, ""
)
Excel은 상수를 일치하는 길이 상수 배열로 자동 확장하므로 다음과 같습니다.
IF(
{FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE}
, {1;2;3;4;5;6;7;8;9;10}
, {"";"";"";"";"";"";"";"";"";""}
)
이는 다음과 같이 평가됩니다.
{"";2;"";4;"";6;"";8;"";10}
그러면 함수 SMALL()
는 다음과 같습니다.
SMALL({"";2;"";4;"";6;"";8;"";10},ROW()-1+1)
문자열을 무시 하므로 SMALL()
이는 다음과 동일합니다.
SMALL({2;4;6;8;10},ROW())
숫자는 공백이 아닌 이름의 색인입니다. 셀 B1
SMALL()
반환 의 경우 4를 반환 2
합니다 B2
. 이하 에서는 오류를 B6
반환합니다 #NUM!
. (그래서 IFERROR()
함수가 있는 것입니다. 이러한 오류를 공백으로 변환합니다.)
마지막으로 INDEX()
함수는 인덱스를 사용하여 이름을 가져옵니다.
답변2
빈 셀을 제외하면서 값을 나열하는 한 가지 방법은 다음과 같습니다. 보다이 도움말 페이지상세 사항은.
이를 수행하는 수식에는 첫 번째 데이터 행 위에 행이 필요합니다. 아래 표의 제목은 해당 용도로 사용됩니다.
이 배열 수식은 B2에 입력됩니다.
=IFERROR(INDEX($A$2:$A$10,MATCH(0,COUNTIF($B$1:B1,$A$2:$A$10&"")+IF($A$2:$A$10=",1,0),0)),"")
배열 수식으로는 CtrlShiftEnter그냥 가 아닌 를 함께 입력해야 합니다 Enter. 올바르게 입력하면 Excel은 수식 표시줄에서 수식을 중괄호 {}로 묶습니다.
수식을 입력한 후 B2 셀을 클릭하고 수식을 채웁니다.
나열해야 하는 중복된 이름이 있는 경우 이 배열 수식은 공백만 제거하고 중복된 이름은 제거하지 않습니다.
=IFERROR(INDEX(A:A,SMALL(INDEX(NOT(ISBLANK($A$2:$A$10))*ROW($A$2:$A$10),0),COUNTBLANK($A$2:$A$10)+ROW(C1))),"")