如何设置数据透视表中的星期开始date

我试图过滤数据透视表中的数据。 我需要将星期一定为一周的第一天。 默认是星期天。 你知道如何设置它吗?

编辑1:我正在尝试使用本周进行dynamic过滤。 由于默认是星期天,结果不是我所期望的。

编辑2:使用VBA的当前解决scheme。 我仍然在寻找更好的解决scheme。

Sub YmThisWeek() ' ' YmFinal Macro ' ' Dim startDate, endDate As Date endDate = Date startDate = endDate - 7 ' 7 DAYS IN A WEEK 'Pick the star of the week 'vbSunday 1 Sunday (default used) 'vbMonday 2 Monday 'vbTuesday 3 Tuesday 'vbWednesday 4 Wednesday 'vbThursday 5 Thursday 'vbFriday 6 Friday 'vbSaturday 7 Saturday Do While (startDate < endDate - 1) And Not Weekday(startDate) = 2 '<- week start day startDate = startDate + 1 Loop ActiveSheet.PivotTables("pvtTbl").PivotFields("Date").ClearAllFilters ActiveSheet.PivotTables("pvtTbl").PivotFields("Date").PivotFilters.Add Type:= _ xlDateBetween, Value1:=Format(startDate, "dd/mm/yyyy"), Value2:=Format(endDate, "dd/mm/yyyy") End Sub 

好问题。 而我没有完美的答案。 但是,这种解决方法可能会让你去。

  • 点击“星期天”
  • 将其拖动到Pivot表的末尾

在这里输入图像说明

你可以用VBA做到这一点。 但是您可以使用的非VBA方法涉及在数据中添加一个额外的列。 标签它这个星期 。 然后用一个公式根据你的星期定义返回TRUE或FALSE。 例如,如果“本周”是从最近一个星期一到下一个星期六,与存储在单元格F1中的date相比,则公式为:

 =AND(A2>=($F$1+1-WEEKDAY($F$1-1)),A2<=($F$1+7-WEEKDAY($F$1-1))) 

为了testing目的,我使用了一个单元格引用,并build议您按照所需的方式进行操作。 您可以随后更改您的单元格,使其包含= TODAY() ,或者您可以在公式中replaceTODAY()

然后,将本周拖到filter区域并过滤为TRUE。每当刷新您的数据透视表时,filter将更新。