Strona 1 z 1

Problem z filtrowaniem w zakresach.

: śr mar 26, 2025 4:36 pm
autor: jozo2009
Cześć Wszystkim.

Mam problem po aktualizacji:

Na starszej wersji działało bez zarzutu.

Otóż mam nadane zakresy danych a dla każdego zakresu włączony auto filtr.
Po aktualizacji średnia zostaje wciągnięta do zakresu danych podlegających filtrowaniu, a powinna pozostawać na spodzie kolumny.
Nie umiem tego naprawić. Nawet ustawianie na nowo wszystkiego nie działa.
Ktoś pomoże?

Re: Problem z filtrowaniem w zakresach.

: śr mar 26, 2025 9:18 pm
autor: Jermor
Pobrałem twój plik i u mnie (wersja programu w stopce) średnia nie jest "wciągana" do zakresu.

Może nie zrozumiałem, w czym jest problem?

Re: Problem z filtrowaniem w zakresach.

: śr mar 26, 2025 11:17 pm
autor: Jan_J
A u mnie się rozszerza. LO 24.8.5.2 rpm x86_64 z libreoffice.org.

Jeśli usunę autofiltr, założę go od nowa na obszarze A1:B11 (dla porządku usunąłem pusty pierwszy wiersz) i użyję operacji sortuj, to obszar jest rozszerzany na cały zajęty blok. Komórka z formułą zmienia pozycję i formułę szlag trafia: #Adr!

W nowo tworzonych dokumentach, po ustawieniu autofiltra na obszar A1:Bn jest on automatycznie rozszerzany w dół, jeśli przylegające od dołu komórki są niepuste.
W przykładzie pobranym od @jozo2009 między tabelą a podsumowaniem jest 1 pusty wiersz, ale obszar i tak się rozszerza. Nie rozumiem.

Narzędzia→Opcje→Calc→Ogólne
[ ] Rozszerz formatowanie
[ ] Aktualizuj odwołania
mam wyłączone. Zresztą one nie do tego służą.

// Edit, po chwili
e tam, jest kaczan. Robię tak:
zakładam w arkuszu kolumny A, B o następującej treści

Kod: Zaznacz cały

aa	bb
a	1
a	2
a	3
e	5
b	11
b	22
d	33
d	55
c	111
c	222
f	444
	
bla	=AVERAGE(B2:B12)
(wiersz 13 jest pusty. Nie ma znaczenia co jest pod nim; byle to było „coś”.)

Zakładam autofiltr na A1:B12

Bez zaznaczenia bloku używam opcji autofiltra do posortowania albo selekcji wierszy kolejno różnymi sposobami.

Jeśli nie dać pustego wiersza, nastepująca po nim zawartość zostałaby wciągnięta w obszar filtra. Bardzo źle. Ale pusty wiersz separuje ją, na razie skutecznie.

Tylko że kiedy zmienię jego formatowanie (np. kolor tła), to druga w kolejności operacja na autofiltrze i tak sięga poza ten wolny wiersz. Bardzo, bardzo źle.

Proszę o potwierdzenie scenariusza. Właściwie trzeba by sprawdzić na najnowszych 24.8.6 i 25.2.2 zaraz po ich oficjalnym wydaniu i wtedy zgłosić błąd.

Coś podobnego do: https://bugs.documentfoundation.org/sho ... ?id=145995
Defined DATA ranges merge destructively if cells separating them are inadvertently filled (autofilter extending data area).
Błąd istnieje od wersji 3.4.0.
Importance: high major. Not assigned.

Ale ja nie używałem zakresów baz danych.

Re: Problem z filtrowaniem w zakresach.

: czw mar 27, 2025 9:32 am
autor: jozo2009
Dokładnie, próbowałem wielu trików i możliwości odseparowania, lecz nic się nie sprawdza. Na LibreOffice_7.5.6.1_Win_x86-64 działa bez zarzutu.

Re: Problem z filtrowaniem w zakresach.

: czw mar 27, 2025 11:40 am
autor: Jan_J
No nic, trzeba/warto przygotować minimalny zestaw, jasno opisać scenariusz który sprawia problem w najnowszej wersji ze wskazaniem wersji referencyjnej, w której dawał przewidywalne rezultaty.
Najnowszej: tj. upewnić się że problem pozostaje aktualny w ostatniej oficjalnie wydanej wersji. W tym momencie jest to 25.2.1, ale zaczekałbym na 25.2.2 i na 24.8.6. Obie wyjdą „na dniach”. Nie spodziewam się, by coś w nich się poprawiło, ale jest wtedy oczywista sytuacja odnośnie aktualności błędu.

Re: Problem z filtrowaniem w zakresach.

: czw mar 27, 2025 10:00 pm
autor: Jermor
Nie zorientowałem się z opisu @Jozo2009, że chodzi o sortowanie zakresu. Przedstawię swoje spostrzeżenia.
Zakres sortowania, w przypadku niezaznaczania żadnego obszaru, jest wyznaczany automatycznie na podstawie otoczenia aktualnie aktywnej komórki. Z tego powodu ostatni wiersz, zawierający różnego rodzaju obliczenia umieszczany jest po pustym wierszu, oddzielającym dane od podsumowań, aby nie został zagarnięty do obszaru sortowania. Jeżeli jednak komórka aktywna znajduje się w jakimś nazwanym już obszarze, to do sortowania pobierany jest cały ten obszar. @Jozo2009 z jakichś powodów wstawił do swojego arkusza nazwany obszar bazy danych. Nazwy takiego obszaru nie są ujawniane w poleceniu "Arkusz -> Nazwane zakresy..." ani w rozwijanym polu "Obszar arkusza" (tego w górnym lewym rogu). Tę nazwę można znaleźć w poleceniu "Dane -> Określ zakres...". W pliku jest to nawa A przypisana do zakresu $Arkusz1.$A$2:$B$15.
Należy wykonać następujące czynności (w tej kolejności):
  1. Wyłączyć Autofiltr.
  2. Usunąć nazwany obszar, "Dane -> Określ zakres... " -> usunąć zakres o nazwie A.
  3. Teraz należy zaznaczyć dwie komórki A13:B13 i wykonać na nich CTRL+M, czyli wyczyścić bezpośrednie formatowanie (chodzi o nałożony kolor w tych komórkach). Trzeba to zrobić, bo Calc umożliwia obecnie sortowanie i filtrowanie po kolorach i szary kolor w wierszu 13 jest traktowany jako dalszy ciąg danych.
  4. Teraz można ponownie włączyć Autofiltr.

Re: Problem z filtrowaniem w zakresach.

: czw mar 27, 2025 10:16 pm
autor: Jermor
Trochę niejasno użyłem w zdaniu "...w jakimś nazwanym już obszarze..." . Pisząc to, miałem na myśli właśnie obszar bazy danych, a nie nazwy nadawane zakresom komórek.

Re: Problem z filtrowaniem w zakresach.

: pt cze 06, 2025 9:32 am
autor: cwolan
Jan_J pisze: śr mar 26, 2025 11:17 pm e tam, jest kaczan. Robię tak:
zakładam w arkuszu kolumny A, B o następującej treści (...)

Zakładam autofiltr na A1:B12 (...)

Ale ja nie używałem zakresów baz danych.
A jednak.
Założenie autofiltru (czy użycie sortowania) na nienazwanym obszarze arkusza spowoduje utworzenie anonimowego zakresu bazy danych. Jego nazwa zawiera ciąg "__Anonymous_Sheet_DB__". W pliku wewnętrznym content.xml znajdziemy zapis w rodzaju:

Kod: Zaznacz cały

<table:database-ranges>
<table:database-range table:name="__Anonymous_Sheet_DB__0" table:target-range-address="Arkusz1.A1:Arkusz1.B12" table:display-filter-buttons="true"/>
</table:database-ranges>
Nazwa anonimowego zakresu nie jest ujawniana w Dane ⟶ Określ zakres, Dane ⟶ Wybierz zakres czy w Nawigatorze (por. uwaga poniżej w komentarzu do postu Jermor-a).

W jednym arkuszu może być tylko jeden anonimowy zakres baz danych. Programistyczny dostęp do niego umożliwia właściwość "UnnamedDatabaseRanges" — zob. tdf#147257).

Jermor pisze: czw mar 27, 2025 10:00 pm @Jozo2009 z jakichś powodów wstawił do swojego arkusza nazwany obszar bazy danych. Nazwy takiego obszaru nie są ujawniane w poleceniu "Arkusz -> Nazwane zakresy..." ani w rozwijanym polu "Obszar arkusza" (tego w górnym lewym rogu). Tę nazwę można znaleźć w poleceniu "Dane -> Określ zakres...". W pliku jest to nawa A przypisana do zakresu $Arkusz1.$A$2:$B$15.
Plik PRZYKŁAD BŁEDU.ods definiuje dwa zakresy bazy danych: zakres o nazwie "A" i zakres nienazwany (anonimowy).

Kod: Zaznacz cały

<table:database-ranges>
    <table:database-range table:name="A" table:target-range-address="Arkusz1.A2:Arkusz1.B15" table:display-filter-buttons="true">
       <table:sort>
          <table:sort-by table:field-number="1" table:order="descending" table:data-type="automatic"/>
       </table:sort>
    </table:database-range>
    <table:database-range table:name="__Anonymous_Sheet_DB__0" table:target-range-address="Arkusz1.A2:Arkusz1.B12"/>
</table:database-ranges>
Jeśli w Arkuszu1 wskaże się komórkę nienależącą do zakresu "A" (np. komórka D2 na załączonym zrzucie ekranu), to Calc po wybraniu Dane ⟶ Określ zakres wyświetli w polu Zakres współrzędne anonimowego zakresu "__Anonymous_Sheet_DB__0", a sam zakres zaznaczy w arkuszu.
anonymousDBR.png
anonymousDBR.png (43.71 KiB) Przejrzano 2075 razy
Jermor pisze: czw mar 27, 2025 10:00 pm Należy wykonać następujące czynności (w tej kolejności):
Procedura określona w krokach 1–3 zadziała, z tym że oczywiście w pliku pozostanie definicja anonimowego zakresu bazy danych.


Na forum AskLibO w marcu zeszłego roku pojawił się wątek Strange Autofilter behaviour. Opis zdaje się pasować do przedstawionego tu przez jozo2009, zaś komentarze przywołują odnośne (?) raporty w Bugzilli.

Re: Problem z filtrowaniem w zakresach.

: pt cze 06, 2025 7:55 pm
autor: Jan_J
cwolan pisze:[...]
Bardzo ciekawe.
Moim zdaniem to efekt uboczny słabo ukierunkowanego rozwoju.

Re: Problem z filtrowaniem w zakresach.

: sob cze 07, 2025 7:21 pm
autor: cwolan
Jan_J pisze: pt cze 06, 2025 7:55 pm Moim zdaniem to efekt uboczny słabo ukierunkowanego rozwoju.
Całkiem możliwe.

Automatyczne rozszerzanie zakresu wybranego dla filtra to problem Calc-a znany od "zarania dziejów". Sposób na jego obejście — pusty wiersz po zakresie — również. W LO Bugzilli zostały zgłoszone tdf#35923 (w 2011 roku) oraz tdf#85773 (w 2014 roku, uznany za duplikat). W obu przypadkach ciekawa dyskusja z przykładami.

Na marginesie: OpenOffice.org przed wersją 3.4.0 zachowywał się inaczej.