Диапазон автофильтрации Excel: оставьте диапазон без изменений / избегайте автоматического добавления строк - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть проблема, чтобы ограничить автофильтр 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), который включает только отфильтрованные строкикак предполагалось).

Что я делаю не так?Спасибо!

enter image description here

1 Ответ

0 голосов
/ 02 февраля 2019

При использовании того же диапазона для ряда диаграмм диапазон автофильтрации остается неизменным:

Как предположил dwirony, стандартное поведение Excel для добавления новых данных (строк) вавтофильтр.Таким образом, диапазон фильтра расширяется, и в моем нижнем ряду отображаются промежуточные итоги, а строка скрывается при повторном применении фильтра.

Однако, если вы примените серию диаграмм к тому же диапазону ячеек, что и диапазон автофильтра, тогда автофильтр останется неизменным!Т.е. мой диапазон автофильтра был «A1: D111» и изменен на «A1: D112» при добавлении контента в строку 112. Однако если я создаю серию диаграмм для диапазона «A1: D111» и добавляю контент в строку 112, то диапазон автофильтра будетостанется неизменным.

Примечание: PS Я также пытался сохранить фиксированный диапазон, определяя именованный диапазон (без его использования), но это не помогает / фильтр по-прежнему добавляет новые строки вне указанного диапазонаавтоматически.В xlsx писатель:

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