【问题标题】:Excel autofilter range: keep the range unchanged / avoid that rows are added automaticallyExcel自动过滤范围:保持范围不变/避免自动添加行
【发布时间】:2019-02-01 15:21:53
【问题描述】:

我在将 Excel 自动筛选器限制在设置范围内并在该范围下方显示粘性底部行时遇到问题...

这很好用(我正在使用 Python xlsxwriter):

worksheet.autofilter('A1:D111')

这会导致 Excel (Office 365) 中的筛选器列表范围为 $A$1:$D$111。

但是,如果我在自动过滤范围下方写一个单元格:

worksheet.write(111, 3, 'Total filtered selection', format_string) #adds string to Excel row 112

然后这一行也包含在过滤器范围中(过滤器现在由于某种原因在 $D112 处结束......见图)。

因此,在更改过滤器时,底行不会粘在选择的底部,这是我想要显示选择的总数(使用=SUBTOTAL(101, E1:E111),它只包括按预期过滤的行) .

我做错了什么?谢谢!

【问题讨论】:

  • 这不只是 Excel 的标准行为,它“有用地”扩展了过滤器范围以包括添加到源过滤器下方的数据吗?您可以通过在 Excel 中创建一个类似的示例来验证它。
  • 谢谢!是的,在 Excel 中手动执行此操作时也会发生同样的情况。像这样将手动总计放在底部可能是个坏主意。我会寻求不同的解决方案。

标签: python excel xlsxwriter autofilter


【解决方案1】:

通过对图表系列使用相同的范围,自动筛选范围保持不变:

正如 dwirony 所建议的,将新数据(行)添加到自动过滤器似乎是 Excel 的标准行为。通过这种方式,过滤器范围扩展,我的底行显示小计,并且在重新应用过滤器时该行被隐藏。

但是,如果您将图表系列应用于与自动筛选范围相同的单元格范围,则自动筛选保持不变! IE。我的自动筛选范围是“A1:D111”,在向第 112 行添加内容时更改为“A1:D112”。但是,如果我为范围“A1:D111”创建图表系列并将内容添加到第 112 行,那么自动筛选范围将保持不变。

PS 注意:我还尝试通过定义命名范围(不使用它)来保持范围固定,但这无济于事/过滤器仍会自动在命名范围之外添加新行。在 xlsx 编写器中:

workbook.define_name('Filterrange', '={}!$A$1:$D$111'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多