Wyszukiwanie tekstu w komórkach
Wyszukiwanie tekstu w komórkach
Mam takie zadanie do rozwiązania:
w komórce A1 mam słowo CNC, natomiast w komórce A2 mam cały opis produkcji gdzie występuje wyraz CNC lub nie występuje
moim zadaniem jest stworzenie takiej formuły w kolumnie A3 aby wyszukiwała tego tekstu i podała wartość 1 lub 0
pomóżcie bo to pilne:)
w komórce A1 mam słowo CNC, natomiast w komórce A2 mam cały opis produkcji gdzie występuje wyraz CNC lub nie występuje
moim zadaniem jest stworzenie takiej formuły w kolumnie A3 aby wyszukiwała tego tekstu i podała wartość 1 lub 0
pomóżcie bo to pilne:)
Libre Office 5.1.5.2
Re: Wyszukiwanie tekstu w komórkach
Formuła jest już zawarta w twoim zadaniu.
Masz prezent na święta.
Następnym razem poczytaj trochę w pomocy o funkcjach!
Kod: Zaznacz cały
=JEŻELI(A1="CNC";1;0)Następnym razem poczytaj trochę w pomocy o funkcjach!
LinuxMint 18, Windows 7, LibreOffice (6.0.7)-64bit
Re: Wyszukiwanie tekstu w komórkach
he, he 
tyle to i mój syn wie
mi chodziło o to że w komórce A2 będzie ciąg znaków wśród których będzie słowo CNC (lub też nie będzie) np. Wyciąć - oszlifować - CNC - itd...
formuła A3 ma przeszukać taką komórkę w poszukiwaniu takiego słowo i dopiero wtedy nadać wartość 1 dla występowania takiego słowa lub 0 kiedy nie występuję
tyle to i mój syn wie
mi chodziło o to że w komórce A2 będzie ciąg znaków wśród których będzie słowo CNC (lub też nie będzie) np. Wyciąć - oszlifować - CNC - itd...
formuła A3 ma przeszukać taką komórkę w poszukiwaniu takiego słowo i dopiero wtedy nadać wartość 1 dla występowania takiego słowa lub 0 kiedy nie występuję
Libre Office 5.1.5.2
Re: Wyszukiwanie tekstu w komórkach
Poczytałeś już w pomocy o formułach? czy czekasz na gotowca.
Znowu odpowiedziałeś sobie zadając pytanie. Wystarczy przeczytać ze zrozumieniem!
jeżeli znajdziesz szukany "tekst" wpisz 1
W cudzysłowie tekst jest wpisany dużymi literami więc formuła znajdzie tylko tekst pisany dużymi, natomiast tekst pisany małymi odda wartość 0.
Znowu odpowiedziałeś sobie zadając pytanie. Wystarczy przeczytać ze zrozumieniem!
jeżeli znajdziesz szukany "tekst" wpisz 1
jeśli go tam niema to wpisz 0=JEŻELI(ZNAJDŹ("CNC";A1;1)>0;"1"
czyli razemJEŻELI.BŁĄD(ZNAJDŹ("CNC";A1;1)<0;"0")
Ważne!=JEŻELI(ZNAJDŹ("CNC";A1;1)>0;"1";JEŻELI.BŁĄD(ZNAJDŹ("CNC";A1;1)<0;"0"))
W cudzysłowie tekst jest wpisany dużymi literami więc formuła znajdzie tylko tekst pisany dużymi, natomiast tekst pisany małymi odda wartość 0.
LinuxMint 18, Windows 7, LibreOffice (6.0.7)-64bit
Re: Wyszukiwanie tekstu w komórkach
Upewnij się, że w opcjach Calc masz włączone "Włącz wyrażenia regularne w formułach" (Narzedzia - Opcje - Calc - Oblicz - Ogólne obliczenia)
Użyj formuły:
Niestety w tych formułach nie jest rozróżniana wielkość liter, więc znalezione zostaną ciągi cnc, CNC, CnC itd.
Użyj formuły:
Kod: Zaznacz cały
=LICZ.JEZELI(A1;".*CNC.*")AOO 4.1.15, LO 25.8 (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.
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.
Re: Wyszukiwanie tekstu w komórkach
Uzupełniając post A_P zmodyfikuj formułe do:
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ("CNC";A1)>0;1;0);0)AOO 4.1.15, LO 25.8 (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.
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.
Re: Wyszukiwanie tekstu w komórkach
Wyręczyłeś mnie Jermor uzupełniając mój post.
Miał to być ostatni krok w toku rozumowania, który przedstawiłem. Nie wszystko naraz.
Nie przekonałeś mnie z tą formułą licz.jeżeli ponieważ próbowałem przy włączonej opcji "włącz wyrażenia regularne" i zawsze wychodzi 0. Jeśli masz rację podrzuć przykład.
Miał to być ostatni krok w toku rozumowania, który przedstawiłem. Nie wszystko naraz.
Nie przekonałeś mnie z tą formułą licz.jeżeli ponieważ próbowałem przy włączonej opcji "włącz wyrażenia regularne" i zawsze wychodzi 0. Jeśli masz rację podrzuć przykład.
LinuxMint 18, Windows 7, LibreOffice (6.0.7)-64bit
Re: Wyszukiwanie tekstu w komórkach
Można ominąć wyrażenia regularne, każdy ciąg zmieniając na duże litery.Jermor pisze:Upewnij się, że w opcjach Calc masz włączone "Włącz wyrażenia regularne w formułach" (Narzedzia - Opcje - Calc - Oblicz - Ogólne obliczenia)
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ("CNC";LITERY.WIELKIE(A1))>0;1;0);0)LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Wyszukiwanie tekstu w komórkach
Belstar
LITERY.WIELKIE zamieniają ciąg na wielkie litery i dopiero wtedy porównują z podanym ciągiem. Więc to niczego nie zmienia. Napisałem, że dotyczy to funkcji LICZ.JEŻELI, dla której można skorzystać z wyrażeń regularnych. Z takich wyrażeń można skorzystać jedynie dla niektórych funkcji. Oto lista tych funkcji
'SUMIF', 'COUNTIF',
'MATCH', 'SEARCH', 'LOOKUP', 'HLOOKUP', 'VLOOKUP',
'DCOUNT', 'DCOUNTA', 'DSUM', 'DPRODUCT',
'DMAX', 'DMIN', 'DAVERAGE', 'DSTDEV', 'DSTDEVP', 'DVAR', 'DVARP',
'DGET'
Nie chce mi się teraz szukać polskich odpowiedników tych nazw. Zawsze byłem i jestem przeciwnikiem spolszczania nazw funkcji.
Przykład dla A_P załączam poniżej, w tym przykładzie wyszukiwanym ciągiem jest "ga".
W przykładzie załączam także wykorzystanie formuły w postaci
Dla niezorientowanych: Funkcja JEŻELI.BŁĄD zwraca wartość drugiego argumentu gdy pierwszy argument zwraca bład. Funkcja ZNAJDŹ podaje pozycję na której znaleziono ciąg. Jeśli szukanego ciągu nie ma wartością funkcji jest #VALUE! (błąd). Funkcja BIEŻĄCY podaje wartość formuły obliczoną do momentu pojawienia się funkcji BIEŻĄCY, czyli w tym przypadku także pozycję na której ciąg występuje, albo #VALUE! jeśli ciąg nie został znaleziony. Jeśli ciąg wystąpił to obliczona wartość wynosi 1 (pozycja ciągu podzielona przez pozycję ciągu) a jeśli nie to funkcja JEŻELI.BŁĄD zwraca 0.
Ta formuła także wyznaczy wartości 1 gdy ciąg zostanie znaleziony i 0 gdy nie.
Środowisko takie jak w stopce.
LITERY.WIELKIE zamieniają ciąg na wielkie litery i dopiero wtedy porównują z podanym ciągiem. Więc to niczego nie zmienia. Napisałem, że dotyczy to funkcji LICZ.JEŻELI, dla której można skorzystać z wyrażeń regularnych. Z takich wyrażeń można skorzystać jedynie dla niektórych funkcji. Oto lista tych funkcji
'SUMIF', 'COUNTIF',
'MATCH', 'SEARCH', 'LOOKUP', 'HLOOKUP', 'VLOOKUP',
'DCOUNT', 'DCOUNTA', 'DSUM', 'DPRODUCT',
'DMAX', 'DMIN', 'DAVERAGE', 'DSTDEV', 'DSTDEVP', 'DVAR', 'DVARP',
'DGET'
Nie chce mi się teraz szukać polskich odpowiedników tych nazw. Zawsze byłem i jestem przeciwnikiem spolszczania nazw funkcji.
Przykład dla A_P załączam poniżej, w tym przykładzie wyszukiwanym ciągiem jest "ga".
W przykładzie załączam także wykorzystanie formuły w postaci
Kod: Zaznacz cały
=JEŻELI.BŁĄD(ZNAJDŹ("ga";A1)/BIEŻĄCY();0)Ta formuła także wyznaczy wartości 1 gdy ciąg zostanie znaleziony i 0 gdy nie.
Środowisko takie jak w stopce.
- Załączniki
-
- wr.ods
- (11.6 KiB) Pobrany 205 razy
AOO 4.1.15, LO 25.8 (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.
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.
Re: Wyszukiwanie tekstu w komórkach
Choć to wszystko co napisałeś o wykorzystaniu wyrażeń regularnych jest prawdą, to mam wrażenie że nie o to chodzi autorowi tematu.
Wracamy do początku:
1) w komórce A1 mam słowo "CNC".
2) w komórce A2 mam cały opis produkcji gdzie występuje wyraz "CNC" lub nie.
3) w kolumnie (ma na myśli komórkę) A3 aby wyszukiwała tego tekstu i podała wartość 1 lub 0
A1 = "CNC"
A2 = "Pociąć, oszlifować, powiercić, frezarka cnc, Pomalować, wyrzucić"
A3 = Ciąg z komórki A1 został znaleziony w ciągu z komórki A2, zwróć 1, nie został zwróć 0.
Formuła w tej postaci zwróci 0 bo funkcja ZNAJDŹ() rozróżnia wielkość liter. Żeby doprowadzić do sytuacji elastycznej możemy skorzystać z funkcji wymienionych przez ciebie (włączyć opcje wyrażenia regularne w formułach) lub zmodyfikować już istniejącą.
Formuła zmienia wielkość liter z komórki A2 i dopiero szuka ciągu z komórki A1. Niestety rozwiązanie jest połowicze bo musimy pamiętać o tym by zawsze szukaną frazę wpisywać z dużej litery, modyfikujemy dalej
Doprowadziliśmy do sytuacji że ciąg szukany i przeszukiwany jest zmieniany na duże litery i dopiero podany dalszej obróbce i to bez mieszania w opcjach. A czy to jest lepsze rozwiązanie czy gorsze, niech zdecyduje autor pytania.
A stwierdzenie "Więc to niczego nie zmienia" nie jest do końca uprawnione tym bardziej że nie ja jestem autorem formuły z wykorzystaniem funkcji ZNAJDŹ().
Wracamy do początku:
1) w komórce A1 mam słowo "CNC".
2) w komórce A2 mam cały opis produkcji gdzie występuje wyraz "CNC" lub nie.
3) w kolumnie (ma na myśli komórkę) A3 aby wyszukiwała tego tekstu i podała wartość 1 lub 0
A1 = "CNC"
A2 = "Pociąć, oszlifować, powiercić, frezarka cnc, Pomalować, wyrzucić"
A3 = Ciąg z komórki A1 został znaleziony w ciągu z komórki A2, zwróć 1, nie został zwróć 0.
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(A1;A2)>0;1;0);0)Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(A1;LITERY.WIELKIE(A2))>0;1;0);0)Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(LITERY.WIELKIE(A1);LITERY.WIELKIE(A2))>0;1;0);0)A stwierdzenie "Więc to niczego nie zmienia" nie jest do końca uprawnione tym bardziej że nie ja jestem autorem formuły z wykorzystaniem funkcji ZNAJDŹ().
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Wyszukiwanie tekstu w komórkach
Witam belstarze świątecznie.
Najpierw wytłumaczenie się. Nie wiem dlaczego odniosłem użycie funkcji LITERY.WIELKIE do zaproponowanego przeze mnie sposobu LICZ.JEŻELI + wyrażenia regularne a nie do funkcji ZNAJDŹ. Zastosowanie w funkcji ZNAJDŹ jest jak najbardziej stosowne i wskazane. Tak jak to podałeś powyżej w ostatniej formule.
Masz też rację co do stosowania wyrażeń regularnych w tym sensie, że ktoś słabo zorientowany w arkuszu, po przekopiowaniu pliku do innego komputera, może nagle stracić funkcjonalność arkusza i nie będzie wiedział, że stało się to z powodu inaczej ustawionych opcji.
W tym stanie rzeczy może właściwym byłoby wprowadzenie przez autorów Calca takich zmian, aby właściwość korzystania z wyrażeń regularnych była przenoszona z plikiem?
W końcu oczywistą oczywistością (jak mawia pewien klasyk) jest, że autor pytania sam podejmie decyzję co i jak.
Ze Świątecznymi i Noworocznymi pozdrowieniami.
Najpierw wytłumaczenie się. Nie wiem dlaczego odniosłem użycie funkcji LITERY.WIELKIE do zaproponowanego przeze mnie sposobu LICZ.JEŻELI + wyrażenia regularne a nie do funkcji ZNAJDŹ. Zastosowanie w funkcji ZNAJDŹ jest jak najbardziej stosowne i wskazane. Tak jak to podałeś powyżej w ostatniej formule.
Masz też rację co do stosowania wyrażeń regularnych w tym sensie, że ktoś słabo zorientowany w arkuszu, po przekopiowaniu pliku do innego komputera, może nagle stracić funkcjonalność arkusza i nie będzie wiedział, że stało się to z powodu inaczej ustawionych opcji.
W tym stanie rzeczy może właściwym byłoby wprowadzenie przez autorów Calca takich zmian, aby właściwość korzystania z wyrażeń regularnych była przenoszona z plikiem?
W końcu oczywistą oczywistością (jak mawia pewien klasyk) jest, że autor pytania sam podejmie decyzję co i jak.
Ze Świątecznymi i Noworocznymi pozdrowieniami.
AOO 4.1.15, LO 25.8 (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.
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.
Re: Wyszukiwanie tekstu w komórkach
Dziękuje, jest ok.
=LICZ.JEZELI(A1;".*CNC.*")
ta formuła jest dla mnie najlepsza, gdyż zależało mi aby wyszukiwał mi zapisu "CNC" niezależnie jakimi literami będzie wpisane
pozdrawiam i jeszcze raz dzięki
=LICZ.JEZELI(A1;".*CNC.*")
ta formuła jest dla mnie najlepsza, gdyż zależało mi aby wyszukiwał mi zapisu "CNC" niezależnie jakimi literami będzie wpisane
pozdrawiam i jeszcze raz dzięki
Libre Office 5.1.5.2