Excel의 다른 열에 조건을 지정한 고유 목록 만들기


0

내 문제 그래픽을 보여주는 이미지

enter image description here

Column B:  Column C:
1             A   
1             A          
1             B        
2             B        
2             C            
3             D     
3             D    

B 열의 값이 주어진 C 열의 값을 가져올 수있는 방법이 있습니까? 예를 들어 B 열의 값이 1이라면 C 열의 고유 값은 무엇입니까?


5
그것은 피벗 테이블을위한 좋은 직장 같아!
Raystafarian

피벗은 다른 시트의 드롭 다운 메뉴에 사용하지 않으면 작동합니다. Menu1 = 1 id는 메뉴 2의 옵션으로 ABCDF를 표시하려는 경우에만 해당됩니다. "수동"피벗을 수행해야합니다.
Marcus Ericsson

피벗 테이블에는 필터가 있으며 드롭 다운됩니다.
Raystafarian

답변:


0

VBA / 매크로 사용 :

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim wks As Worksheet
    Set wks = ActiveSheet
    filterrow = 2 'row of the filter cell
    filtercolumn = 4 'column of the filter cell
    criteriacolumn = 2 'number of column of the criteria list
    firstrow = 2 'first row on the criteria list
    resultcolumn = 5 'number of columns where to show the results
    thecriteria = Target.Value
    Dim critarray() As Variant
    therow = Target.Row
    thecolumn = Target.Column
    lastitem = 0
    wks.Columns(resultcolumn).ClearContents
    If (therow = filterrow) And (thecolumn = filtercolumn) Then
        lastrow = wks.Cells(Rows.Count, criteriacolumn).End(xlUp).Row
        ReDim critarray(lastrow)
        For i = firstrow To lastrow
            tempcriteria = wks.Cells(i, criteriacolumn)
            templist = wks.Cells(i, criteriacolumn + 1)
            If tempcriteria = Target.Value Then
                repeated = False
                For j = 1 To lastitem
                    a = critarray(j)
                    If a = templist Then
                        repeated = True
                        j = lastrow
                    End If
                Next j
                If repeated = False Then
                    lastitem = lastitem + 1
                    critarray(lastitem) = templist
                    wks.Cells(lastitem, resultcolumn) = templist
                End If
            End If
        Next i
    End If
    Application.EnableEvents = True
End Sub

ALT + F11을 사용하여 VBA / 매크로를 열면 시트가 두 번 클릭되고 오른쪽에 코드가 붙여 넣어집니다. 매크로를 시트에 맞게 수정할 수있는 변수가 있습니다.

그것은 셀을 사용합니다. D2 필터 값으로 사용하고 결과를 열에 출력합니다. 이자형 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.