비어 있지 않은 셀에서 참조를 가져옵니다.

비어 있지 않은 셀에서 참조를 가져옵니다.

기능 관련 도움이 필요합니다. AI 열에는 이름 목록이 있지만 빈 셀로 구분됩니다. B열에 빈 셀 없이 이러한 이름을 표시할 수 있는 방법이 있습니까?

결과는 다음과 같아야 합니다.

여기에 이미지 설명을 입력하세요

답변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))),"")

관련 정보