2017-10-19 4 views
0

그래서 첫 번째 열에는 여러 모듈이 있고 두 번째 열에는 여러 모듈이있는 테이블이 있습니다. 나는에서 모듈을 선택하면여러 값을 가진 Vlookup

IMAGE

가 지금은 고유의 독특한 모듈의 데이터 유효성 검사 목록을 만든, 모듈 A, 모듈 B와 모듈 C. 너무 목록 : 그것은 다음과 같이 보입니다 그 목록에서 모듈에 속한 모든 프로세스를 별도의 셀에있는 드롭 다운 목록 옆에 표시하고 싶습니다. 프로세스가 서로 아래에 나타나는 것은 '좋은 것'일 것입니다.

나는 색인 및 vlookup 등 다양한 작업을 시도했지만 해결 방법을 찾을 수 없습니다.

답변

0

는 Office 365 Excel에서 다음이 배열 수식 사용하는 경우 :

=TEXTJOIN(",",TRUE,IF($A$2:$A$7 = D2,$B$2:$B$7,"")) 

이 배열 수식과 함께 확인해야 편집 모드를 종료 할 때 Ctrl 키 Shift 키를 입력합니다. 제대로 수행되면 excel은 수식 주위에 {}을 넣습니다.

enter image description here


는 오피스 365가없는 경우 엑셀 통합 문서에 부착 된 모듈에이 코드를 넣어 전술 한 바와 같이 사용합니다.

Function TEXTJOIN(delim As String, skipblank As Boolean, arr) 
    Dim d As Long 
    Dim c As Long 
    Dim arr2() 
    Dim t As Long, y As Long 
    t = -1 
    y = -1 
    If TypeName(arr) = "Range" Then 
     arr2 = arr.Value 
    Else 
     arr2 = arr 
    End If 
    On Error Resume Next 
    t = UBound(arr2, 2) 
    y = UBound(arr2, 1) 
    On Error GoTo 0 

    If t >= 0 And y >= 0 Then 
     For c = LBound(arr2, 1) To UBound(arr2, 1) 
      For d = LBound(arr2, 1) To UBound(arr2, 2) 
       If arr2(c, d) <> "" Or Not skipblank Then 
        TEXTJOIN = TEXTJOIN & arr2(c, d) & delim 
       End If 
      Next d 
     Next c 
    Else 
     For c = LBound(arr2) To UBound(arr2) 
      If arr2(c) <> "" Or Not skipblank Then 
       TEXTJOIN = TEXTJOIN & arr2(c) & delim 
      End If 
     Next c 
    End If 
    TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) 
End Function 

것은 그들에게 별도의 세포에서 다른 사용 아래 하나의 첫 번째 셀에이 수식을 표시 얻고 긴 목록을 충당하기 위해 충분히 아래로 복사하려면 :

=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($A$2:$A$7)/($A$2:$A$7=$D$2),ROW(1:1))),"") 

enter image description here

+0

을 빠른 반응을 가져 주셔서 감사합니다. 그러나 프로세스가 다른 셀에 나타나길 원합니다. 서로 아래에 나타나면 저에게 가장 좋은 방법이 될 것입니다. –

+0

그렇다면 여러분이해야 할 말은 무엇입니까? 원래 게시물에 –

+0

@NickKuipers는 편집을 참조하십시오 –