Ile slow występuje w komórce

Użytkowanie arkusza kalkulacyjnego
Dawidek990
Posty: 58
Rejestracja: czw gru 13, 2018 12:15 am

Ile slow występuje w komórce

Post autor: Dawidek990 »

Nie wiem czy taki temat juz byl, ale nie moglem znalezc odpowiedzi.
Potrzebuje formuly ktora mi pokaze ile razy dane wyrazenie pada w komorce?
</li><li>nożyczki plastikowe</li><li>szczypce</li><li>strzykawka</li><li>termometr</li><li>otoskop</li><li>młoteczek</li><li>pudełeczko na waciki</li><li>plaster z elastycznego tworzywa</li><li>notatnik</li></ul>Ostrzeżenie: Zawiera małe części, nieodpowiednie dla dzieci poniżej 3 lat!<ul><li>Waga produktu: 381 g</li><li>Wymiary produktu: 11 x 19 x 24 cm</li><li>Zalecany wiek producenta: od 3 lat</li><li>Model: 4457</li><li>Języki: francuski, angielski, niemiecki</li><li>Model: 4457</li><li>Liczba graczy: 1</li><li>Wymagany montaż: Nie</li><li>Niezbędne baterie: Nie</li><li>Baterie w zestawie: Nie</li><li>Pilot zdalnego sterowania w zestawie: Nie</li><li>Stan:</li><li>Dostawa:</li></ul>
potrzebuje wiedziec ile razy <li> pada w tej komorce, i ile razy </li>.
OpenOffice 4.1.6 Windows 10
Awatar użytkownika
Rafkus
Posty: 527
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Ile slow występuje w komórce

Post autor: Rafkus »

Do tego celu musisz wykorzystać 2 funkcje tekstowe:
1. obliczającą długość ciągu tekstowego czyli DŁ(Tekst)
2. funkcję zamieniającą pewną frazę w danym tekście innym tekstem czyli PODSTAW(Tekst; Szukana Fraza; Nowa Fraza)

i teraz jak je wykorzystać:
- wykorzystując funkcję 1. zostanie wyliczony ile znaków ma oryginalny tekst
- wykorzystując funkcję 2. zamieniasz wszystkie wystąpienia poszukiwanej frazy pustym ciągiem np.: PODSTAW(Tekst; "li"; ""), a następnie wyliczasz ile teraz w Tekście jest znaków
- teraz musisz poznać różnicę w ilości znaków oryginalnego tekstu i zmienionego
- dzieląc obliczoną różnicę przez ilość znaków w poszukiwanej frazy otrzymasz ile razy dana fraza wystąpiła.

Załóżmy że oryginalny tekst jest w komórce A1, poszukiwaną frazę masz wpisaną w komórce A2, w A3 chcesz otrzymać wynik, czyli do tej komórki powinieneś wpisać formułę:

Kod: Zaznacz cały

=(DŁ(A1)-DŁ(PODSTAW(A1;A2;"") ) )/DŁ(A2)
lub pomijając wpisywanie poszukiwanej frazy do innej komórki:

Kod: Zaznacz cały

=(DŁ(A1)-DŁ(PODSTAW(A1;"/li";"") ) )/DŁ("/li")
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2352
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Ile slow występuje w komórce

Post autor: Jermor »

Rozszerzając myśl @Rafkus. W tak różnorodnym zestawie znaków może się jednak trafić zbieżność ciągu z niepożądanym miejscem. Np. "... 6 wyrazów/linijkę...". Dlatego lepiej zamieniać ciąg "<li>" i "</li>"
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 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
Rafkus
Posty: 527
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Ile slow występuje w komórce

Post autor: Rafkus »

A i jeszcze jedno, funkcja PODSTAW rozróżnia wielkość liter czyli "li" to nie to samo co "Li", dlatego można by jeszcze rozważyć zmianę wielkości liter w tekstach stosując funkcję LITERY.WIELKIE()
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Jan_J
Posty: 4579
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Ile slow występuje w komórce

Post autor: Jan_J »

Rafkus pisze:A i jeszcze jedno, funkcja PODSTAW rozróżnia wielkość liter czyli "li" to nie to samo co "Li", dlatego można by jeszcze rozważyć zmianę wielkości liter w tekstach stosując funkcję LITERY.WIELKIE()
We współczesnych wersjach HTML znaczniki są pisane małymi literami.
Czy wolno z tego faktu korzystać? to zależy skąd pochodzi kod -- czyt jest to próba sprawdzenia poprawności własnej twórczości, czy kodu otrzymanego z zewnątrz.

Tym niemniej mam wrażenie, że używamy niewłaściwego narzędzia. Do walidacji dokumentów XML napisano mnóstwo dotowego oprogramowania.
Poza tym biblioteki wyposażone w funkcję zliczającą frazy (np. metody wbudowane w typ str w Pythonie) pozwalają to zrobić prościej

Kod: Zaznacz cały

def czyTyleSamo(tekst, znacznik):
    return tekst.count("<%s>" % znacznik) == tekst.count("</%s>" % znacznik)
Ale nawet one nie gwarantują poprawności kodu. Np. tekst

Kod: Zaznacz cały

<ul><li>raz</li><li>dwa</li><li>trzy</li></ul>
jest poprawny strukturalnie (xml well-formed), podczas gdy tekst

Kod: Zaznacz cały

<ul><li>raz</li><li>dwa</li></li>trzy<li></ul>
taki nie jest, choć liczba znaczników się zgadza.

Jest taki podstawowy fakt z teorii obliczeń: zadanie poprawnego rozmieszczenia nawiasów nie da się rozwiązać za pomocą automatu skończonego. Więc chyba wybrałbym inną metodę.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ