Note: The other languages of the website are Google-translated. Back to English

피벗 테이블 필터를 Excel의 특정 셀에 연결하는 방법은 무엇입니까?

피벗 테이블 필터를 특정 셀에 연결하고 셀 값을 기준으로 피벗 테이블을 필터링하려는 경우이 문서의 방법이 도움이 될 수 있습니다.

VBA 코드를 사용하여 피벗 테이블 필터를 특정 셀에 연결


VBA 코드를 사용하여 피벗 테이블 필터를 특정 셀에 연결

필터 기능을 셀 값에 연결할 피벗 테이블에는 필터 필드가 포함되어야합니다 (필터 필드의 이름은 다음 VBA 코드에서 중요한 역할을합니다).

아래의 피벗 테이블을 예로 들어 보겠습니다. 피벗 테이블의 필터 필드는 범주, 두 개의 값이 포함되어 있습니다.경비"및"가격”. 피벗 테이블 필터를 셀에 연결 한 후 피벗 테이블 필터에 적용 할 셀 값은 "비용"및 "판매"여야합니다.

1. 피벗 테이블의 필터 기능에 연결할 셀 (여기서는 셀 H6 선택)을 선택하고 미리 필터 값 중 하나를 셀에 입력하십시오.

2. 셀에 연결할 피벗 테이블이 포함 된 워크 시트를 엽니 다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 코드보기 상황에 맞는 메뉴에서. 스크린 샷보기 :

3. 에서 응용 프로그램 용 Microsoft Visual Basic 창에서 VBA 코드 아래를 코드 창에 복사하십시오.

VBA 코드 : 피벗 테이블 필터를 특정 셀에 연결

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

노트:

1) "Sheet1”는 열린 워크 시트의 이름입니다.
2) "피벗 테이블 2”는 필터 기능을 셀에 연결할 피벗 테이블의 이름입니다.
3) 피벗 테이블의 필터링 필드는 "범주".
4) 참조 된 셀은 H6입니다. 필요에 따라 이러한 변수 값을 변경할 수 있습니다.

4. 누르세요 다른 + Q 닫는 키 응용 프로그램 용 Microsoft Visual Basic 창.

이제 피벗 테이블의 필터 기능이 H6 셀에 연결되었습니다.

H6 셀을 새로 고치면 피벗 테이블의 해당 데이터가 기존 값을 기준으로 필터링됩니다. 스크린 샷보기 :

셀 값을 변경하면 피벗 테이블의 필터링 된 데이터가 자동으로 변경됩니다. 스크린 샷보기 :


certian 열의 셀 값을 기반으로 전체 행을 쉽게 선택합니다.

또한 특정 셀 선택 ~의 유용성 Excel 용 Kutools 아래 스크린 샷과 같이 Excel의 certian 열에있는 셀 값을 기반으로 전체 행을 빠르게 선택할 수 있습니다. 셀 값을 기준으로 모든 행을 선택한 후 Excel에서 필요에 따라 새 위치로 수동으로 이동하거나 복사 할 수 있습니다.
지금 다운로드하여 사용해 보세요! (30-하루 무료 트레일)


관련 기사 :


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (36)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드에는 대상이 하나뿐이므로 다중 필드에서 수행하는 방법
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 프랭크
Sory는 당신을 도울 수 없습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
피벗 테이블에 연결된 셀(이 경우 H6)이 다른 워크시트에 있으면 어떻게 됩니까? 코드를 어떻게 변경합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
1개 이상의 피벗 테이블이 있고 1개의 셀에 연결하려면 어떻게 해야 하나요? 코드를 어떻게 수정해야 하나요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 제리님
죄송합니다. 도와드릴 수 없습니다. 포럼에 질문을 게시하는 것을 환영합니다. https://www.extendoffice.com/forum.html Excel 전문가 또는 다른 Excel 팬으로부터 더 많은 Excel 지원을 받으려면
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것을 찾아 Array(), Intersect(), Worksheets(), PivotFields()에서 변경하십시오.

피벗 테이블 1
피벗 테이블 2
피벗 테이블 3
피벗 테이블 4
H1
시트 이름
분야 명




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
보아타르데...! Ótima publicação, como faço para utilizar o filtro em duas ou mais tabelas dinâmicas...? Agradeço desde já.

안녕하세요...! 훌륭한 게시, 두 개 이상의 피벗 테이블에서 필터를 어떻게 사용합니까...? 미리 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 길마르 알베스입니다.
죄송합니다. 도와드릴 수 없습니다. 포럼에 질문을 게시하는 것을 환영합니다. https://www.extendoffice.com/forum.html Excel 전문가 또는 다른 Excel 팬으로부터 더 많은 Excel 지원을 받으려면
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
다중 피벗 테이블 연결 질문을 알아낸 사람이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Array(), Worksheets() 및 Intersect()의 값 변경



**찾고 변경**
시트 이름
E1
피벗 테이블 1
피벗 테이블 2
피벗 테이블 3




개인 하위 Worksheet_Change (범위로 ByVal 대상)
' 업데이트 Extendoffice 20180702
Dim xPTable을 피벗 테이블로 사용
xPFile을 피벗 필드로 흐리게 처리

Dim xPTabled를 피벗 테이블로 사용
Dim xPFiled를 피벗 필드로 사용

Dim xStr을 문자열로



오류에 대한 다음 재개

'리스트 정리
Dim listArray() 변형으로
listArray = Array("피벗 테이블1", "피벗 테이블2", "피벗 테이블3")



Intersect(Target, Range("E1"))가 아무것도 아닌 경우 Sub를 종료합니다.
Application.ScreenUpdating = False

i = 0 UBound(listArray)까지

xPTable = Worksheets("SheetName").PivotTables(listArray(i)) 설정
xPFile = xPTable.PivotFields("Company_ID") 설정

xStr = 대상.텍스트
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr



다음

Application.ScreenUpdating = True



최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Ciao, sto provando a far lo stesso empio per far in modo che il filtro della pivot si setti sul valore della cella,
비 riesco farla funzionare.

Quale passaggio manca nella descrizione sopra?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
오류 메시지를 받았습니까? Excel 버전과 같은 문제에 대해 더 구체적으로 알아야 합니다. 그리고 괜찮다면 새 통합 문서에서 데이터를 만들고 다시 시도하거나 데이터의 스크린샷을 찍어 여기에 업로드하세요.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

열 필터에 대해 이 작업을 수행하려고 했지만 작동하지 않는 것 같습니다. 다른 코드가 필요합니까?

감사
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저스틴입니다.
오류 메시지가 표시되었습니까? 귀하의 문제에 대해 더 구체적으로 알아야 합니다.
코드를 적용하기 전에 "시트의 이름""피벗 테이블의 이름""피벗 테이블의 필터 이름" 그리고 세포 기준으로 피벗 테이블을 필터링하려고 합니다(스크린샷 참조).
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/4.png
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님,

당신의 도움을 주셔서 감사합니다. 문제는 함수가 어떤 이유로 든 아무것도 하지 않는다는 것입니다. 일부 설명:

피벗 이름: Order_Comp_B2C
시트 이름: 계산 시트
필터 이름: 주 번호(데이터 파일의 "디스패치 주 번호"에서 이 이름을 변경함)
변경할 셀: O26 및 O27(범위 내에 있어야 함)

이 피벗에서 열에 대한 필터를 변경하려고 하는데 피벗 테이블 필드 메뉴의 필터 영역에 아무 것도 없습니다.

내 코드는 다음과 같습니다.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
' 업데이트 Extendoffice 20180702
Dim xPTable을 피벗 테이블로 사용
xPFile을 피벗 필드로 흐리게 처리
Dim xStr을 문자열로
오류에 대한 다음 재개
Intersect(Target, Range("O26"))가 아무것도 아닌 경우 Sub 종료
Application.ScreenUpdating = False
xPTable = Worksheets("계산 시트").PivotTables("Order_Comp_B2C") 설정
xPFile = xPTable.PivotFields("주 번호") 설정
xStr = 대상.텍스트
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True
최종 하위

감사합니다,

Justin
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저스틴 티우입니다.
나는 피벗 이름, 시트 이름, 필터 이름변경할 셀 위에서 언급한 조건에 따라 제공한 VBA 코드를 시도했지만 제 경우에는 잘 작동합니다. 다음 GIF 또는 첨부된 워크북을 참조하세요.
새 통합 문서를 만들고 코드를 다시 시도하시겠습니까?
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/6.gif
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리스탈님,

피벗 스크린샷에 첨부된 빨간 박스는 셀 값에 따라 변경하고 싶은 필터입니다.

바람직하게는 여러 주 번호를 나타내는 셀 범위를 사용하고 싶습니다.

감사합니다,

Justin
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저스틴입니다.
죄송합니다. 페이지에 첨부한 스크린샷을 보지 못했습니다. 페이지에 오류가 있을 수 있습니다.
여전히 문제를 해결해야 하는 경우 zxm@addin99.com을 통해 저에게 이메일을 보내주십시오. 불편을 드려 죄송합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저스틴 티우입니다.
다음 VBA 코드를 시도하십시오. 내가 도울 수 있기를 바랍니다.

Private Sub Worksheet_Change(ByVal Target As Range)
    'Update by Extendoffice 20220706
    Dim I As Integer
    Dim xFilterStr1, xFilterStr2 As String
    On Error Resume Next
    If Intersect(Target, Range("O26:O27")) Is Nothing Then Exit Sub
    'Application.ScreenUpdating = False
    
    xFilterStr1 = Range("O26").Value
    xFilterStr2 = Range("O27").Value
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        ClearAllFilters
    If xFilterStr1 = "" And xFilterStr2 = "" Then Exit Sub
    ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number"). _
        EnableMultiplePageItems = True
    xCount = ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems.Count

    For I = 1 To xCount
        If I <> xFilterStr1 And I <> xFilterStr2 Then
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = False
        Else
            ActiveSheet.PivotTables("Order_Comp_B2C").PivotFields("Week Number").PivotItems(I).Visible = True
        End If
    Next

    'Application.ScreenUpdating = True
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
일반 엑셀에 사용해보니 잘 되네요. 하지만 olap 워크시트에는 사용할 수 없었습니다. 조금 바꿔야 하지 않을까요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 maziaritib4 TIB입니다.
이 방법은 Microsoft Excel에서만 사용할 수 있습니다. 불편을 드려 죄송합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저스틴입니다.

이것은 완벽하게 작동했지만 이 규칙을 동일한 시트 내의 여러 피벗 테이블에 적용할 수 있는지 궁금합니다.

감사합니다,
제임스
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 제임스

네 가능합니다. 제가 사용한 코드는 (4개의 피벗과 2개의 셀 참조):

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Dim I as 정수
Dim xFilterStr1, xFilterStr2, yFilterstr1, yfilterstr2 문자열로
오류에 대한 다음 재개
Intersect(Target, Range("O26:P27"))가 아무것도 아닌 경우 Sub 종료

xFilterStr1 = 범위("O26").값
xFilterStr2 = 범위("O27").값
yFilterstr1 = 범위("p26").값
yfilterstr2 = 범위("p27").값
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("주 번호"). _
모든 필터 지우기

xFilterStr1 = "" 및 xFilterStr2 = "" 및 yFilterstr1 = "" 및 yfilterstr2 = ""이면 하위 종료
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("주 번호"). _
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("주 번호"). _
EnableMultiplePageItems = 참

xCount = ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("주 번호").PivotItems.Count
xCount = ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("주 번호").PivotItems.Count
yCount = ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("주 번호").PivotItems.Count
yCount = ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("주 번호").PivotItems.Count

I = 1에 대해 xCount
만약 내가 <> xFilterStr1 그리고 내가 <> xFilterStr2 그렇다면
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("주 번호").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("주 번호").PivotItems(I).Visible = False
다른
ActiveSheet.PivotTables("Order_Comp_B2C_Crea").PivotFields("주 번호").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Order_Comp_B2B_Crea").PivotFields("주 번호").PivotItems(I).Visible = True
END IF
다음

I = 1에 대해 yCount
만약 내가 <> yFilterstr1 그리고 내가 <> yfilterstr2 그렇다면
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("주 번호").PivotItems(I).Visible = False
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("주 번호").PivotItems(I).Visible = False
다른
ActiveSheet.PivotTables("Order_Comp_B2C_Disp").PivotFields("주 번호").PivotItems(I).Visible = True
ActiveSheet.PivotTables("Order_Comp_B2B_Disp").PivotFields("주 번호").PivotItems(I).Visible = True
END IF
다음

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Array(), Worksheets() 및 Intersect()의 값 변경



**찾고 변경**
시트 이름
E1
피벗 테이블 1
피벗 테이블 2
피벗 테이블 3




개인 하위 Worksheet_Change (범위로 ByVal 대상)
' 업데이트 Extendoffice 20180702
Dim xPTable을 피벗 테이블로 사용
xPFile을 피벗 필드로 흐리게 처리

Dim xPTabled를 피벗 테이블로 사용
Dim xPFiled를 피벗 필드로 사용

Dim xStr을 문자열로



오류에 대한 다음 재개

'리스트 정리
Dim listArray() 변형으로
listArray = Array("피벗 테이블1", "피벗 테이블2", "피벗 테이블3")



Intersect(Target, Range("E1"))가 아무것도 아닌 경우 Sub를 종료합니다.
Application.ScreenUpdating = False

i = 0 UBound(listArray)까지

xPTable = Worksheets("SheetName").PivotTables(listArray(i)) 설정
xPFile = xPTable.PivotFields("Company_ID") 설정

xStr = 대상.텍스트
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr



다음

Application.ScreenUpdating = True



최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

코드가 잘 작동합니다. 그러나 필터 대상을 자동으로 업데이트하도록 피벗 테이블을 가져올 수 없습니다. 제 경우의 대상은 [DATE(D18,S14,C18)] 수식입니다. 코드는 대상 셀을 두 번 클릭하고 Enter 키를 누를 때만 작동합니다.

고맙습니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

이 코드는 완벽하게 작동합니다. 그러나 피벗 테이블을 자동으로 업데이트하는 코드를 얻을 수 없습니다. 나를 위한 목표 값은 D18에서 선택한 항목에 따라 변경되는 공식(=DATE(D18,..,..))입니다. 피벗 테이블을 업데이트하려면 대상 셀을 두 번 클릭하고 Enter 키를 눌러야 합니다. 주위에 방법이 있습니까?

고맙습니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 ST님
목표 값이 H6에 있고 D18의 값에 따라 변경된다고 가정합니다. 이 대상 값을 기반으로 피벗 테이블을 필터링합니다. 다음 VBA 코드가 도움이 될 수 있습니다. 시도해 보십시오.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2022/07/22
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("h6")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub

Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet1").PivotTables("Pivot Table 1")
Set xPFile = xPTable.PivotFields("Category")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 크리솔입니다.

코드에 한 줄을 추가했습니다. Dim xRg As Range

코드는 대상이 변경될 때 날짜를 자동으로 재설정하지 않습니다. 내가 하려는 것을 복제하는 Excel 파일이 있지만 이 웹사이트에 첨부 파일을 추가할 수 없습니다. D3(대상 = DATE(A15,B15,C15))에는 A15, B15 및 C15에 연결된 방정식이 있습니다. A15, B15 및 C15의 값이 변경되면 피벗 테이블이 필터 없음으로 재설정됩니다. 이 일을 도와주시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 ST님,
무슨 말인지 잘 이해가 되지 않습니다. 귀하의 경우 대상 셀 D3의 값은 피벗 테이블을 필터링하는 데 사용됩니다. 대상 셀 D3의 수식은 참조 셀의 값에 따라 변경되는 A15, B15 및 C15 셀의 값을 참조합니다. A15, B15 및 C15의 값이 변경되면 대상 셀의 값이 피벗 테이블의 필터 조건을 충족하는 경우 피벗 테이블이 자동으로 필터링됩니다. 대상 셀의 값이 피벗 테이블의 필터링 기준을 충족하지 않으면 피벗 테이블이 필터링 없음으로 자동 재설정됩니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
엑셀 파일을 공유할 수 있는 방법이 있는지 잘 모르겠습니다. 날짜인 나의 목표값이 다른 셀의 변화에 ​​따라 변한다면. 피벗 테이블을 업데이트하려면 대상 셀을 두 번 클릭하고 Enter 키를 눌러야 합니다(셀에 수식을 입력한 후와 같이).
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 Sagar T님,
코드가 업데이트되었습니다. 시도해 주세요. 의견을 보내주셔서 감사합니다.
코드에서 워크시트, 피벗 테이블 및 필터의 이름을 변경하는 것을 잊지 마십시오. 또는 테스트를 위해 업로드된 다음 통합 문서를 다운로드할 수 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220805
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next

xBoolean = False
Set xRg = Range("D3")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
    xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
    xBoolean = True
ElseIf Not (xDs Is Nothing) Then
    xBoolean = True
End If


If Not xBoolean Then Exit Sub
xStr = Format(xRg.Text, "m/d/yyyy")
Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet2").PivotTables("PivotTable1")
Set xPFile = xPTable.PivotFields("Date")
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True

End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것을 찾아 Array(), Intersect(), Worksheets(), PivotFields()에서 변경하십시오.

피벗 테이블 1
피벗 테이블 2
피벗 테이블 3
피벗 테이블 4
H1
시트 이름
분야 명




Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xPTabled As PivotTable
    Dim xPFiled As PivotField
    Dim xStr As String
    On Error Resume Next
    '리스트 만들기
    Dim listArray() As Variant
    listArray = Array("PivotTable1", "PivotTable2", "PivotTable3", "PivotTable4")
    If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    For i = 0 To UBound(listArray)
        Set xPTable = Worksheets("SheetName").PivotTables(listArray(i))
        Set xPFile = xPTable.PivotFields("FieldName")
        'MsgBox (listArray(i))
        xStr = Target.Text
        xPFile.ClearAllFilters
        xPFile.CurrentPage = xStr
    Next
        Application.ScreenUpdating = True
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Как сделать чтобы сводная таблица применяла сразу 2 필트라 из 2хразных ячек? 예를 들어 1카크가 없습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 Алексей,

이 댓글에서 VBA 코드가 있는지 확인하십시오. #38754 그러나 권한을 얻는 것은 제작자와 사용자 모두에게 시간이 많이 걸리고 복잡할 수 있으며 크리에이티브 커먼즈 라이선스가 이를 해결할 수 있다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Можно ли сослаться вместо ячейки H6 на ячейку на другом листе? 당신은 무엇입니까? подскажите пожалуйста.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 Алексей,

코드를 수정할 필요 없이 참조하려는 셀의 워크시트에 VBA 코드를 추가하기만 하면 됩니다.
예를 들어 "라는 피벗 테이블을 필터링하려는 경우피벗 테이블 1"에서 Sheet2 셀 값을 기준으로 H6 in Sheet3, 마우스 오른쪽 버튼을 클릭하십시오 Sheet3 워크시트 탭에서 클릭 코드보기 오른쪽 클릭 메뉴에서 코드를 Sheet3(코드) 창.
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호