ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Użytkowanie arkusza kalkulacyjnego
emerson626
Posty: 6
Rejestracja: sob maja 25, 2024 1:26 pm

ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: emerson626 »

Potrzebuję użyć adresowania pośredniego do komórki z innego arkusza. Zrobiłem to w arkuszu, w którym miałem już wiele obliczeń.
Nie chciało mi działać, dostawałem błąd: #REF!
W tym samym środowisku, na tym samym komputerze, w nowo utworzonym pliku identyczna formuła:
=ADR.POŚR("Arkusz6"&".A1")
działa bardzo dobrze.
Ale na moim starym nie. Bez wskazania nazwy arkusza obie wersje działają dobrze.
Dla zdiagnozowania przyczyny problemu wyrzucałem z tego źle działającego arkusza, wszystko po kolei, aż został już tylko prosty przykład składający się z komórki A1 i wskazującej na nią formułę w A2.
Czyli w tej chwili zawartość arkusza nowego i starego jest identyczna, a nowy działa, a stary nie.
Podejrzewam jakąś różnice w konfiguracji i ustawieniach samego arkusza lub pliku, ale nie potrafię znaleźć przyczyny.
Załączam oba arkusze:
dziala.ods - nowy arkusz, gdzie jest wszystko ok
nie.dziala.ods - stary arkusz, gdzie w A2 jest błąd #REF!

Będę wdzięczny za jakieś pomysły. Zależy mi na ustaleniu powodu takiego zachowania mojego pliku.
Załączniki
nie.dziala.ods
(9.63 KiB) Pobrany 96 razy
dziala.ods
(8.46 KiB) Pobrany 94 razy
LibreOffice 7.0.6.2 na Fedora Linux 33
Jan_J
Posty: 4583
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: Jan_J »

Piękny przykład ... Potwierdzam zgodność zachowania z opisem.
Jeszcze nie wiem, dlaczego tak jest.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Jan_J
Posty: 4583
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: Jan_J »

Odwołanie do fontu Calibri w skoroszycie "nie.dziala.ods" (miękko) sugeruje, że w jego rozwoju był epizod z Excelem. I składnia excelowska w jego przypadku okazała się być tą skuteczną. Excelowska, tzn. "Arkusz6!A1" zamiast "Arkusz6.A1".

Rzecz tkwi w metadanych dokumentu:
po rozpakowaniu obu skoroszytów w osobnych katalogach i „przeflancowaniu” pliku content.xml z niedziałającego do działającego, adresy zaczynają żyć.
To znaczy, że nie są winne formuły, tylko tryb obsługi, który wybiera określony dialekt adresowania. Do wykrycia przez przejrzenie różnic w pozostałych plikach tworzących skoroszyt, a przypuszczam, że będzie z tego błąd do zgłoszenia.

Warto sprawdzić w tekście źródłowym tego dokumentu, czy wymusza on składnię Excela. Bo w interfejsie Calca tego nie widzę, a wymuszenie zmiany w Narzędzia→Opcje→Calc→Formuła nic nie daje.

Wyjaśnienie: skoroszyty .ods, a także .xlsx, są w istocie archiwami .zip z tekstowym (XML) opisem zawartości dokumentu. To bardzo ułatwia diagnozowanie problemów związanych z konkretnym dokumentem, bo uniezależnia od interfejsu użytkownika.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
emerson626
Posty: 6
Rejestracja: sob maja 25, 2024 1:26 pm

Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: emerson626 »

Potwierdzam sugestię, o "mezaliansie" z Excelem. Oryginalny plik, był bardzo złożony i część jego przygotowała inna osoba pod Excelem, potem zostało wgrane u mnie do LO i dalej procedowane. Z tego, przez kasowanie zawartości, został zrobiony przykład minimum "nie.dziala.ods".
Dziękuję za sugestię z "Arkusz6!A1", to mi doraźnie pomoże. Próbowałem różnych sposobów zapisu, głównie żonglując cudzysłowami, ale to nie zadziałało.
Ale ciekaw bym był ustalenia, jakie ustawienie, i w jaki sposób zmieniane, pozwoli temu arkuszowi zapomnieć o swojej przeszłości ;o)
Próbowałem już wcześniej rozzipować format .ods i przeglądać te pliki. Ale mnogość parametrów i moja słaba znajomość LO nie pozwoliła mi zlokalizować, o które ustawienie może chodzić.
Może komuś, z większą wiedzą, uda się to wyłapać.
LibreOffice 7.0.6.2 na Fedora Linux 33
emerson626
Posty: 6
Rejestracja: sob maja 25, 2024 1:26 pm

Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: emerson626 »

Porównałem pliki settings.xml. Oprócz, chyba mało istotnych dla problemu różnic odnośnie widoku, zwracaja uwagę dwie różnice, występujące tylko w pliku dla arkusza niedziałającego:
1. <config:config-item config:name="SyntaxStringRef" config:type="short">2</config:config-item>
tego ustawienia nie ma w ogóle w arkuszu działającym
2. cała sekcja
<config:config-item-map-indexed config:name="ForbiddenCharacters">
<config:config-item-map-entry>
...
</config:config-item-map-entry>
</config:config-item-map-indexed>
obejmująca ustawienia dla dwóch języków "en" i "pl"
Tej sekcji też w ogóle nie ma w arkuszu działającym.

Niestety nie bardzo wiem, jak te ustawienia zmodyfikować, żeby przetestować, czy mają jakiś wpływ na problem.
LibreOffice 7.0.6.2 na Fedora Linux 33
cwolan
Posty: 67
Rejestracja: pn sty 25, 2021 11:17 pm

Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: cwolan »

Patrząc w konfigurację formuł w Narzędzia ⟶ Opcje ⟶ LibreOffice Calc ⟶ Formuła

Oba pliki "nie.działa.ods" i "działa.ods" mają ustawione "Szczegółowe ustawienia obliczeń" na "Niestandardowe", ale różnią się co parametru "Składnia odwołania do wartości ciągu", odpowiednio: "Excel A1" oraz "Calc A1 | Excel A1". (*)
compaSET.png
compaSET.png (103.85 KiB) Przejrzano 1309 razy

To ważne, bo według pomocy LibreOffice (temat: "Szczegółowe ustawienia obliczeń") składnia formuły wpływa m.in. na funkcję ADR.POŚR.
strSYNTAX.png
strSYNTAX.png (47.24 KiB) Przejrzano 1309 razy

Przykład ze zmienionym ustawieniem:
bothENA.png
bothENA.png (69.87 KiB) Przejrzano 1309 razy


(*)
Zdaje się, że plik .ods zawiera stosowny zapis, tj. w pliku wewnętrznym settings.xml
jest parametr SyntaxStringRef o odpowiedniej wartości.
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 24.8
Windows 7,10,11 64-bit
emerson626
Posty: 6
Rejestracja: sob maja 25, 2024 1:26 pm

[SOLVED] Re: ADR.POŚR z nazwą arkusza czasem dziala, a czasem nie

Post autor: emerson626 »

Bardzo dziękuję.
Parametr SyntaxStringRef to ten, który jest ustawiony w pliku settings.
Piękne wyjaśnienie, które tłumaczy wszystko i wskazuje jak poprawić w przypadku pliku przekonwertowanego z Excela, z którymi często mam do czynienia.
LibreOffice 7.0.6.2 na Fedora Linux 33
Zablokowany