Problem z filtrowaniem w zakresach.

Użytkowanie arkusza kalkulacyjnego
jozo2009
Posty: 18
Rejestracja: czw kwie 06, 2023 7:44 pm

Problem z filtrowaniem w zakresach.

Post 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?
Załączniki
PRZYKŁAD BŁEDU.ods
BŁĄD
(20.53 KiB) Pobrany 80 razy
Libre Office 7.5.0.3 na Windows 8
Awatar użytkownika
Jermor
Posty: 2442
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Problem z filtrowaniem w zakresach.

Post 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?
AOO 4.1.15, LO 24.8.5 (x64) na Windows 11 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Jan_J
Posty: 4618
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Problem z filtrowaniem w zakresach.

Post 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.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
jozo2009
Posty: 18
Rejestracja: czw kwie 06, 2023 7:44 pm

Re: Problem z filtrowaniem w zakresach.

Post 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.
Libre Office 7.5.0.3 na Windows 8
Jan_J
Posty: 4618
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Problem z filtrowaniem w zakresach.

Post 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.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2442
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Problem z filtrowaniem w zakresach.

Post 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.
AOO 4.1.15, LO 24.8.5 (x64) na Windows 11 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Awatar użytkownika
Jermor
Posty: 2442
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Problem z filtrowaniem w zakresach.

Post 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.
AOO 4.1.15, LO 24.8.5 (x64) na Windows 11 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
cwolan
Posty: 76
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Problem z filtrowaniem w zakresach.

Post 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 75 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.
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 25.2
Windows 7,10,11 64-bit
Jan_J
Posty: 4618
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Problem z filtrowaniem w zakresach.

Post autor: Jan_J »

cwolan pisze:[...]
Bardzo ciekawe.
Moim zdaniem to efekt uboczny słabo ukierunkowanego rozwoju.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
cwolan
Posty: 76
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Problem z filtrowaniem w zakresach.

Post 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.
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 25.2
Windows 7,10,11 64-bit
ODPOWIEDZ