Wyrazenia regularne
Wyrazenia regularne
Witam,
nie bede tu pisal czego to ja nie sprawdzilem i gdzie nie szukalem. Po prostu nie moge rozwiklac problemu i licze ze tu uzyskam pomoc. Jest to wg mnie banalne pytanie, ale nie moge tego rozgryzc.
=REGEX(A1;"SZUKAM";"ZAMIENIAM")
A1 to komorka w ktorej szukam, SZUKAM to szukana fraza, ZAMIENIAM to fraza na ktora zamieniam.
w uproszeniu z A1SZUKAM zamienia mi na A1ZAMIENIAM, a chce na samo ZAMIENIAM
jak dam funkcje:
=REGEX(A1;"SZUKAM";"")
to mam w wyniku SZUKAM, co jest juz ok, ale optymalnie byloby gdybym sam mogl zadecydowac co wpisuje.
Ma ktos pomysl jak to zrobic?
nie bede tu pisal czego to ja nie sprawdzilem i gdzie nie szukalem. Po prostu nie moge rozwiklac problemu i licze ze tu uzyskam pomoc. Jest to wg mnie banalne pytanie, ale nie moge tego rozgryzc.
=REGEX(A1;"SZUKAM";"ZAMIENIAM")
A1 to komorka w ktorej szukam, SZUKAM to szukana fraza, ZAMIENIAM to fraza na ktora zamieniam.
w uproszeniu z A1SZUKAM zamienia mi na A1ZAMIENIAM, a chce na samo ZAMIENIAM
jak dam funkcje:
=REGEX(A1;"SZUKAM";"")
to mam w wyniku SZUKAM, co jest juz ok, ale optymalnie byloby gdybym sam mogl zadecydowac co wpisuje.
Ma ktos pomysl jak to zrobic?
Ostatnio zmieniony śr gru 01, 2021 10:53 pm przez MILESIU, łącznie zmieniany 1 raz.
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Trochę Cię nie rozumiem, u mnie działa wszystko zgodnie z wyjaśnieniami kolegi @Jermora:
Link do pełnej treści jego postu: Funkcja REGEX w Calc (tylko LibreOffice)Jermor pisze: Gdy funkcja ma podane tylko dwa parametry, zwraca ten fragment tekstu źródłowego, który jest dopasowany do wzorca.
REGEX("Jana Pawła II 1234/6";"23") zwróci ciąg 23, gdyż takie dopasowanie zostało znalezione.
REGEX("Jana Pawła II 1234/6";"\d{2}"), zwróci ciąg 12, gdyż wzorzec określa konieczność znalezienia ciągu złożonego z dwóch dowolnych cyfr, a 12 jest pierwszym takim ciągiem.
Jeśli żaden fragment tekstu źródłowego nie pasuje do wzorca, zwracany jest wynik #N/D.
Trzeci argument funkcji to zamiennik dla dopasowanego fragmentu. Funkcja zwróci tekst źródłowy, zastępując dopasowany do wzorca fragment – zamiennikiem.
REGEX("Jana Pawła II 1234/6";"\d{2}";"xxxx") zwróci: Jana Pawła II xxxx34/6, zastępując dopasowany ciąg (12) zamiennikiem (xxxx). Jeżeli żaden fragment tekstu źródłowego nie zostanie dopasowany do wzorca, zwrócony zostanie oryginalny tekst źródłowy.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
@MILESIU
Jeśli podpowiedź wyżej nie wystarczy, to zamiast opisywać „w uproszczeniu”, opisz efekt na jakim Ci zależy i załącz dokładną kopię zastosowanej formuły. Wtedy będzie łatwiej zdiagnozować problem.
Jeśli podpowiedź wyżej nie wystarczy, to zamiast opisywać „w uproszczeniu”, opisz efekt na jakim Ci zależy i załącz dokładną kopię zastosowanej formuły. Wtedy będzie łatwiej zdiagnozować problem.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wyrazenia regularne
Chaotycznie tlumacze, pewnie jakby mnie przebadali to by mi jakas literke wlepili
REGEX("Jana Pawła II 1234/6";"\d{2}";"xxxx") zwróci: Jana Pawła II xxxx34/6, zastępując dopasowany ciąg (12) zamiennikiem (xxxx). Jeżeli żaden fragment tekstu źródłowego nie zostanie dopasowany do wzorca, zwrócony zostanie oryginalny tekst źródłowy.
" zwróci: Jana Pawła II xxxx34/6 "
a co zrobic zeby zwrocilo "xxxx" ?
REGEX("Jana Pawła II 1234/6";"\d{2}";"xxxx") zwróci: Jana Pawła II xxxx34/6, zastępując dopasowany ciąg (12) zamiennikiem (xxxx). Jeżeli żaden fragment tekstu źródłowego nie zostanie dopasowany do wzorca, zwrócony zostanie oryginalny tekst źródłowy.
" zwróci: Jana Pawła II xxxx34/6 "
a co zrobic zeby zwrocilo "xxxx" ?
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Chcesz dostać "xxxx" w odpowiedzi na co?
* na "Jana Pawła II {dwie cyfry}{cokolwiek}"
* na "{cokolwiek}{dwie cyfry}{cokolwiek}"
We argumencie Znajdź musisz opisać takie wyrażenie, które obejmie całą frazę jaką chcesz dopasować.
Przykład wyżej dotyczył Znajdź: "\d{2}", więc zamienione zostało pierwsze wystąpienie dwóch cyfr. Całą reszta została bez zmian.
* na "Jana Pawła II {dwie cyfry}{cokolwiek}"
* na "{cokolwiek}{dwie cyfry}{cokolwiek}"
We argumencie Znajdź musisz opisać takie wyrażenie, które obejmie całą frazę jaką chcesz dopasować.
Przykład wyżej dotyczył Znajdź: "\d{2}", więc zamienione zostało pierwsze wystąpienie dwóch cyfr. Całą reszta została bez zmian.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wyrazenia regularne
A czemu ma zwrócić "xxxx" a nie wynik funkcji REGEX("Jana Pawła II 1234/6";"\d{2}";"xxxx") ??
W tej chwili wygląda tak to tak jakbyś jechał pociągiem do Warszawy a chcesz do Krakowa...
A może zamiast REGEXa potrzebujesz funkcję JEŻELI? JEŻELI jakiś warunek zostanie spełniony TO wypisz "xxxx" bo JEŚLI NIE to napisz coś innego. Formuła wyglądała by tak:
W tej chwili wygląda tak to tak jakbyś jechał pociągiem do Warszawy a chcesz do Krakowa...
A może zamiast REGEXa potrzebujesz funkcję JEŻELI? JEŻELI jakiś warunek zostanie spełniony TO wypisz "xxxx" bo JEŚLI NIE to napisz coś innego. Formuła wyglądała by tak:
Kod: Zaznacz cały
=JEŻELI(jakiś_warunek; "xxxx"; coś_innego)
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
To jest jeden z pomyslow, ktorego nie umiem zaimplementowac. Zakladajac ze REGEX nie sluzy do tego celu, w zasadzie brakuje prawie nic, zeby dzialalo tak jak chce, ale zakladajac ze nie jest do tego i sie uparli. To JEŻELI jest bardzo logiczne.
JEŻELI znalazłeś w komórce A1 frazę "aaaa" to wynik 1, jezeli nie znalazles to wynik 0. I cos takiego mnie by interesowalo. Bylbys tak uprzejmy, zeby napisac formule ?
Ja chce uzyskac proste dzialanie. Mam w kolumnach:
Ala ma kota
Ala na kota
Ala da kota
i tak milion razy. Chce znalezc wiersze w ktorych jest "na", niewazne czy tam sie znajdzie "kotana" bo ktos zle wpisal. Z tym bede walczyl kropkami, spacjami itp.
Czyli z powyzszego chce:
Ala ma kota, 0
Ala na kota, 1
Ala da kota, 0
a nie:
Ala ma kota, Ala ma kota
Ala na kota, Ala na kota1
Ala da kota, Ala da kota
, jako separator.
JEŻELI znalazłeś w komórce A1 frazę "aaaa" to wynik 1, jezeli nie znalazles to wynik 0. I cos takiego mnie by interesowalo. Bylbys tak uprzejmy, zeby napisac formule ?
Ja chce uzyskac proste dzialanie. Mam w kolumnach:
Ala ma kota
Ala na kota
Ala da kota
i tak milion razy. Chce znalezc wiersze w ktorych jest "na", niewazne czy tam sie znajdzie "kotana" bo ktos zle wpisal. Z tym bede walczyl kropkami, spacjami itp.
Czyli z powyzszego chce:
Ala ma kota, 0
Ala na kota, 1
Ala da kota, 0
a nie:
Ala ma kota, Ala ma kota
Ala na kota, Ala na kota1
Ala da kota, Ala da kota
, jako separator.
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
W LO można wyskrobać coś takiego:
Wynik to: PRAWDA lub FAŁSZ; - komórki można sformatować aby wyświetlany wynik był 1 lub 0
Kod: Zaznacz cały
=JEŻELI.BŁĄD(ZNAJDŹ("na";A1);0)>0
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
I to jest juz prawie to co chce, przy czym 0 i 1 podalem jako jakis tekst, a tu jest to traktowane jako prawda falsz, moje niedopatrzenie ze uzylem takich znakow.
Zalezy mi na tym, zebym mogł podac co tam ma byc. Wiec moze bardziej trafny bedzie taki przyklad.
Chce znalezc wiersze w ktorych jest "na" i jezeli jest wpisac "Tak ma" a jezeli nie ma to wpisac "Nie ma" lub zostawic puste.
Ala ma kota
Ala na kota
Ala da kota
Czyli z powyzszego chce np:
Ala ma kota, Nie ma
Ala na kota, Tak ma
Ala da kota, Nie ma
lub
Ala ma kota,
Ala na kota, Tak ma
Ala da kota,
a nie:
Ala ma kota, Ala ma kota
Ala na kota, Ala na kotaTak ma
Ala da kota, Ala da kota
, jako separator.
Zalezy mi na tym, zebym mogł podac co tam ma byc. Wiec moze bardziej trafny bedzie taki przyklad.
Chce znalezc wiersze w ktorych jest "na" i jezeli jest wpisac "Tak ma" a jezeli nie ma to wpisac "Nie ma" lub zostawic puste.
Ala ma kota
Ala na kota
Ala da kota
Czyli z powyzszego chce np:
Ala ma kota, Nie ma
Ala na kota, Tak ma
Ala da kota, Nie ma
lub
Ala ma kota,
Ala na kota, Tak ma
Ala da kota,
a nie:
Ala ma kota, Ala ma kota
Ala na kota, Ala na kotaTak ma
Ala da kota, Ala da kota
, jako separator.
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Piszę z telefonu, więc krótko:
ewentualnie:
Kod: Zaznacz cały
=JEŻELI (JEŻELI.BŁĄD(ZNAJDŹ("na";A1);0); "Tak ma" ; "Nie ma")
Kod: Zaznacz cały
=A1 &", " & JEŻELI (JEŻELI.BŁĄD(ZNAJDŹ("na";A1);0); "Tak ma" ; "Nie ma")
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
Szok niedowierzanie, to jest dokladnie to czego chce.
Wielkie dzieki.
To jeszcze mam dwa pytania, podejrzewam ze ktos bedzie wiedzial.
1. Jak wylaczyc rozpoznawanie wielkosci liter? Zeby Na i NA rozpoznawalo jako warunek spelniony?
Jestem przekonany, ze sie da, bo jest opcja w ustawieniach i szukajce, ale w ustawieniach zmienilem i nic to nie daje.
2. Czy da sie wylaczyc rozpoznawanie polskich znakow, zeby "ną" czy "ńa" rozpoznawalo jako prawde?
Kod: Zaznacz cały
=JEŻELI (JEŻELI.BŁĄD(ZNAJDŹ("na";A1);0); "Tak ma" ; "Nie ma")
To jeszcze mam dwa pytania, podejrzewam ze ktos bedzie wiedzial.
1. Jak wylaczyc rozpoznawanie wielkosci liter? Zeby Na i NA rozpoznawalo jako warunek spelniony?
Jestem przekonany, ze sie da, bo jest opcja w ustawieniach i szukajce, ale w ustawieniach zmienilem i nic to nie daje.
2. Czy da sie wylaczyc rozpoznawanie polskich znakow, zeby "ną" czy "ńa" rozpoznawalo jako prawde?
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Jeśli chodzi o pierwsze pytanie to zastąp funkcje ZNAJDŹ funkcją bodajże SZUKAJ - ona nie rozróżnia wielkości liter. Piszę bodajże bo w tej chwili piszę z pamięci - nie jestem przy komputerze więc mogę się mylić co do nazwy...
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
Super. Tak to teraz wyglada:
w komorce U665290 jest szukany tekst. Moze sie komus przyda.
Z tymi polskimi znakami to podejrzewam, ze moze byc jakis symbol, ale na liscie nie widze.
Kod: Zaznacz cały
=JEŻELI (JEŻELI.BŁĄD(SZUKAJ.TEKST($U$665290;U665278);0); "Tak ma" ; "Nie ma")
Z tymi polskimi znakami to podejrzewam, ze moze byc jakis symbol, ale na liscie nie widze.
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Można nieco skomplikować wcześniejszą formułę: =JEŻELI (JEŻELI.BŁĄD(ZNAJDŹ("na"; A1);0); "Tak ma" ; "Nie ma")
W powyższej formule zamiast odwołanie do komórki A1 można użyć tam funkcji:
Co ona robi:
Załóżmy, że w komórce A1 znajduje się tekst: "Ala Ną KOTA"
Funkcja REGEX dzięki funkcji LITERY.MAŁE(A1) w tekście : "ala ną kota"
będzie szukała wyrażenia: [nń][aą]. Taki zapis oznacza że poszukiwana fraza składa się z dwóch liter, których to litery są wymienione w nawiasach []. Zatem REGEX szuka wystąpienia następującej kombinacji: na, ną, ńa lub ńą,
Jeśli jakaś ta kombinacja wystąpi - zastąpi ją tekstem "na".
I teraz, w tak spreparowanym tekście funkcja ZNAJDŹ będzie sprawdzała czy znajduje się w nim.... ( ale to już zostało wyjaśnione wcześniej )
Cała formuła wygląda zatem tak:
W powyższej formule zamiast odwołanie do komórki A1 można użyć tam funkcji:
Kod: Zaznacz cały
REGEX(LITERY.MAŁE(A1); "[nń][aą]"; "na")
Załóżmy, że w komórce A1 znajduje się tekst: "Ala Ną KOTA"
Funkcja REGEX dzięki funkcji LITERY.MAŁE(A1) w tekście : "ala ną kota"
będzie szukała wyrażenia: [nń][aą]. Taki zapis oznacza że poszukiwana fraza składa się z dwóch liter, których to litery są wymienione w nawiasach []. Zatem REGEX szuka wystąpienia następującej kombinacji: na, ną, ńa lub ńą,
Jeśli jakaś ta kombinacja wystąpi - zastąpi ją tekstem "na".
I teraz, w tak spreparowanym tekście funkcja ZNAJDŹ będzie sprawdzała czy znajduje się w nim.... ( ale to już zostało wyjaśnione wcześniej )
Cała formuła wygląda zatem tak:
Kod: Zaznacz cały
JEŻELI (JEŻELI.BŁĄD(ZNAJDŹ("na"; REGEX(LITERY.MAŁE(A1); "[nń][aą]"; "na")); 0); "Tak ma"; "Nie ma")
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
Fakt skomplikowales, ale co trzeba wylonilem i juz mam sprawe zalatwiona
Regula zostaje jak byla poprzednio, ale w komorce U665290 wpisujemy:
[nń]a
inny przykład, bardziej przejrzysty(dla potomnych, bo obecnie zgromadzeni wiedza o co chodzi) szukamy "przód"
podaje:
prz[oó]d
szukam góra:
g[oó]ra
Dzieki za pomoc.
Regula zostaje jak byla poprzednio, ale w komorce U665290 wpisujemy:
[nń]a
inny przykład, bardziej przejrzysty(dla potomnych, bo obecnie zgromadzeni wiedza o co chodzi) szukamy "przód"
podaje:
prz[oó]d
szukam góra:
g[oó]ra
Dzieki za pomoc.
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
Fakt, REGEX nie potrzebny.
Tylko mała uwaga: aby taki zapis (np.: "g[oó]ra") wyszukiwania był możliwy, w opcjach programu musi być zaznaczona opcja "Włącz wyrażenia regularne w formułach". Z menu Narzędzia ---> Opcje ---> LibreOffice Calc ---> Oblicz, tam w grupie Symbole wieloznaczne w formułach należy mieć włączoną tą opcję.
W funkcji REGEX takie wyrażenia działają niezależnie od tego, czy ta opcja jest zaznaczona, czy też nie.
Tylko mała uwaga: aby taki zapis (np.: "g[oó]ra") wyszukiwania był możliwy, w opcjach programu musi być zaznaczona opcja "Włącz wyrażenia regularne w formułach". Z menu Narzędzia ---> Opcje ---> LibreOffice Calc ---> Oblicz, tam w grupie Symbole wieloznaczne w formułach należy mieć włączoną tą opcję.
W funkcji REGEX takie wyrażenia działają niezależnie od tego, czy ta opcja jest zaznaczona, czy też nie.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
A to akurat byla pierwsza rzecz jaka wlaczylem i nie zauwazylem zadnej roznicy, to teraz wiem do czego to bylo
Jednak apetyt rosnie w miare jedzenia
Jest jakas regula, zeby majac taka tabelke uzyskac taki wynik?
czyli sume wyrazow bez powtorzen oddzielona jakims separatorem.
Jednak apetyt rosnie w miare jedzenia
Jest jakas regula, zeby majac taka tabelke uzyskac taki wynik?
Kod: Zaznacz cały
a b c d wynik
1 na ma na da na,ma,da
2 ma ma da da ma,da
3 na ma da da na,ma,da
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
hmm... a jak sobie radzisz z makrami?
Jeśli dobrze to proponuję ten temat:Unikalne wystąpienia lub ten Usuwanie duplikatów z tekstu
A jeśli nie za dobrze to pozostają formuły macierzowe (zobacz pierwszy link) albo przy pomocy formuł pomocniczych zobacz to: Usuwanie duplikatów i puste komórki
Jeśli dobrze to proponuję ten temat:Unikalne wystąpienia lub ten Usuwanie duplikatów z tekstu
A jeśli nie za dobrze to pozostają formuły macierzowe (zobacz pierwszy link) albo przy pomocy formuł pomocniczych zobacz to: Usuwanie duplikatów i puste komórki
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
Makra to juz jest level hard, w tej chwili nie mam czasu tego ogarnac, ale wyglada to tak interesujaco ze w przyszlosci na pewno do tego wroce, chocby dla rozrywki. Te funkcje tez wydaja sie przekombinowane, a ja mam 20 kolumn do tej operacji.
Znalazłem funkcje ZŁĄCZ.TEKST i juz pol sukcesu mam. Teraz tylko usunac z tego duplikaty oraz zdublowany separator. Mysle, ze moze jakos to regexem sie da w nowej kolumnie, bo mam wynik np "na|da|ma|na||||da" czyli wyciagnac z tego z parametrem g wystapienie [:alnum:] bo przewiduje cyfry i litery i oddzielic separatorem, a zdaje sie ze regex to umie tylko jeszcze nie wiem jak zapisac
Znalazłem funkcje ZŁĄCZ.TEKST i juz pol sukcesu mam. Teraz tylko usunac z tego duplikaty oraz zdublowany separator. Mysle, ze moze jakos to regexem sie da w nowej kolumnie, bo mam wynik np "na|da|ma|na||||da" czyli wyciagnac z tego z parametrem g wystapienie [:alnum:] bo przewiduje cyfry i litery i oddzielic separatorem, a zdaje sie ze regex to umie tylko jeszcze nie wiem jak zapisac
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)
Re: Wyrazenia regularne
to popatrz jaką formułę teraz wymyśliłem:MILESIU pisze:Te funkcje tez wydaja sie przekombinowane, a ja mam 20 kolumn do tej operacji.
Kod: Zaznacz cały
=POŁĄCZ.TEKSTY(",";1;JEŻELI(CZĘSTOŚĆ(PODAJ.POZYCJĘ($B2:$E2;$B2:$E2;0); WIERSZ($A$1:$A4)); TRANSPONUJ($B2:$E2); ""))
A więc na początek funkcja POŁĄCZ.TEKSTY(",";1;ZAKRES) (funkcja ta jest dostępna tylko w LO)
- parametr pierwszy -","- wpisujesz jaki znak ma być separatorem,
- parametr drugi - 1 - oznacza, że mają być pominięte puste komórki,
- parametr trzeci - ZAKRES - jakiś zakres komórek, z których wartości mają być połączone w jeden tekst.
Teraz twoim ZAKRESEM mają być niepowtarzalne wartości z jakiegoś wiersza danych, uzyskuję go przy pomocy funkcji: JEŻELI(WARUNEK, TRANSPONUJ($B2:$E2); "") czyli JEŻELI jakiś WARUNEK jest spełniony (a konkretniej: czy dana wartość z kolejnych pozycji jest unikalna) to ma być przepisana wartość z PIONOWEGO zakresu danych w przeciwnym razie ma być podana pusta wartość "". A ma być z PIONOWEGO dlatego, gdyż funkcja z warunku zwraca tylko pionową macierz danych niezależnie od dostarczanych parametrów...
No to teraz WARUNEK, został on utworzony przy pomocy funkcji CZĘSTOŚĆ(DANE, KLASY). Ta funkcja pomaga podsumowywać zbiór jakiś DANYCH, np powiedzmy że w arkuszu masz zestawienie wyników z jakiegoś sprawdzianu. Dzięki tej jednej funkcji możesz dowiedzieć się ile osób dostało np ocenę <= 2, z przedziału 3÷4 a ile >=5, albo też wymienić ile osób dostało konkretną ocenę.
Wracając do twojego przypadku, ta funkcja jest przeznaczona dla liczb, dlatego zamienię twoje wartości tekstowe na informację: na której pozycji znajduje się pierwsze wystąpienie danego tekstu, czyli DANYMI będą wyniki funkcji: PODAJ.POZYCJĘ($B2:$E2;$B2:$E2;0)
Kod: Zaznacz cały
wiersz danych: na ma na da został zastąpiony danymi: 1 2 1 4
Wyniki częstości dla tego przykładu to pionowy zakres danych mówiący ile razy wystąpiła dana liczba:
Kod: Zaznacz cały
1 ---> 2
2 ---> 1
3 ---> 0
4 ---> 1
---> 0 ile było liczb większych od 4
Mam nadzieję, że teraz to jasne...
EDIT:
Po zastanowieniu postanowiłem zamienić funkcję KOLUMNA() funkcją WIERSZ(). Myślę, że łatwiej zaznaczyć 4 czy też 100 wierszy, niż 4 czy też 100 kolumn. A propo: która to kolumna jest 100???
(odp: po sprawdzeniu CV)
Ostatnio zmieniony pt lis 26, 2021 12:15 pm przez Rafkus, łącznie zmieniany 1 raz.
Powód: Poprawa formuły
Powód: Poprawa formuły
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Wyrazenia regularne
Dzieki, problem w calosci rozwiazany
LibreOffice na Windows 10 Wersja: 6.4.3.2 (x64)