如果第一个筛选值不存在,Excel筛选将更改

如果第一个筛选值不存在,Excel筛选将更改,excel,filter,pivot,not-exists,Excel,Filter,Pivot,Not Exists,透视过滤器名称:Country\u Flg,它接受两个不同的值,它们是0,1。我只将我的轴心过滤为Counrty\u Flg=1 在某些情况下,数据透视表源代码会更新,而Country_Flg只需要0或1。当该值仅为1时没有问题,但当该值仅为0时,我的筛选器将更改并采用courty\u Flg=0。我的仪表板正在这个数据透视表上运行。因此,仪表板上显示的值错误。此外,重新更新透视源时,仍保持为0 我无法找到一种方法,如何在所有条件下将值锚定为1 源数据更新后,我的筛选值正在更改,因为1不再存在

透视过滤器名称:Country\u Flg,它接受两个不同的值,它们是0,1。我只将我的轴心过滤为Counrty\u Flg=1

在某些情况下,数据透视表源代码会更新,而Country_Flg只需要0或1。当该值仅为1时没有问题,但当该值仅为0时,我的筛选器将更改并采用courty\u Flg=0。我的仪表板正在这个数据透视表上运行。因此,仪表板上显示的值错误。此外,重新更新透视源时,仍保持为0

我无法找到一种方法,如何在所有条件下将值锚定为1

源数据更新后,我的筛选值正在更改,因为1不再存在


但我不想筛选为0。我需要指出,如果1不存在,则pivot不应带来任何值。

这是我刚才提到的一个示例(考虑到围绕数据透视表布局的约束保持不变),您可以尝试将其设置为1,否则必须默认为0(如果1不存在)。这会出现在与轴关联的工作表的“代码”窗格中。我在pagefield中使用了与您相同的拼写。不理想,但我认为最好的,因为你不能过滤到一个不存在的值。如果刷新时过滤器存在,它将重置为1

Option Explicit

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

    If Target.Name = "PivotTable1" Then          'change to your pivot name

        Application.EnableEvents = False

        Dim pvtField As PivotField

        Set pvtField = Target.PivotFields("Counrty_Flg")

        On Error GoTo DefaultValue

        With pvtField
            .ClearAllFilters
            .CurrentPage = "1"
        End With

        Application.EnableEvents = True

    End If

    Exit Sub

DefaultValue:

    If Err.Number <> 0 Then

        With pvtField
            .ClearAllFilters
            .CurrentPage = "0"
        End With

        Application.EnableEvents = True
    End If

End Sub
选项显式
专用子工作表_数据透视表更新(ByVal目标作为数据透视表)
如果Target.Name=“PivotTable1”,则“更改为您的pivot名称”
Application.EnableEvents=False
将pvtField设置为PivotField
设置pvtField=Target.PivotFields(“contrty\u Flg”)
返回默认值时出错
用pvtField
.ClearAllFilters
.CurrentPage=“1”
以
Application.EnableEvents=True
如果结束
出口接头
默认值:
如果错误号为0,则
用pvtField
.ClearAllFilters
.CurrentPage=“0”
以
Application.EnableEvents=True
如果结束
端接头
图片:


您能否分享有助于演示这一点的图像和/或数据?另外,我假设Courty_Flg是一个输入错误。你是说,如果支持数据发生变化,并且其中没有1,那么你的过滤器会在更新时更改为0,而0确实存在吗?如果是这样,那是正常的。无法筛选不存在的值上的字段,因为列表来自该数据。您可以使用vba和数据透视表更新事件检查1是否存在,并将筛选器设置为该值。但很难为每种可能的情况编写解决方案,因为这取决于数据的布局方式以及存在的其他切片元素将决定1是否是有效筛选器的选项(我认为)。数据透视表字段是否已修复?也就是说,你没有重新安排枢轴的外观?