Strona 1 z 1
Wyszukiwanie tekstu w komórkach
: pt gru 23, 2016 2:49 pm
autor: gery77
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:)
Re: Wyszukiwanie tekstu w komórkach
: pt gru 23, 2016 4:01 pm
autor: A_P
Formuła jest już zawarta w twoim zadaniu.
Masz prezent na święta.
Następnym razem poczytaj trochę w pomocy o funkcjach!
Re: Wyszukiwanie tekstu w komórkach
: pt gru 23, 2016 4:34 pm
autor: gery77
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ę
Re: Wyszukiwanie tekstu w komórkach
: pt gru 23, 2016 11:13 pm
autor: A_P
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
=JEŻELI(ZNAJDŹ("CNC";A1;1)>0;"1"
jeśli go tam niema to wpisz 0
JEŻELI.BŁĄD(ZNAJDŹ("CNC";A1;1)<0;"0")
czyli razem
=JEŻELI(ZNAJDŹ("CNC";A1;1)>0;"1";JEŻELI.BŁĄD(ZNAJDŹ("CNC";A1;1)<0;"0"))
Ważne!
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.
Re: Wyszukiwanie tekstu w komórkach
: sob gru 24, 2016 12:03 am
autor: Jermor
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.
Re: Wyszukiwanie tekstu w komórkach
: sob gru 24, 2016 12:16 am
autor: Jermor
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)
Re: Wyszukiwanie tekstu w komórkach
: sob gru 24, 2016 10:50 am
autor: A_P
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.
Re: Wyszukiwanie tekstu w komórkach
: sob gru 24, 2016 1:26 pm
autor: belstar
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)
Można ominąć wyrażenia regularne, każdy ciąg zmieniając na duże litery.
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ("CNC";LITERY.WIELKIE(A1))>0;1;0);0)
Re: Wyszukiwanie tekstu w komórkach
: sob gru 24, 2016 8:11 pm
autor: Jermor
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.
Re: Wyszukiwanie tekstu w komórkach
: ndz gru 25, 2016 10:54 am
autor: belstar
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.
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(A1;A2)>0;1;0);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ą.
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(A1;LITERY.WIELKIE(A2))>0;1;0);0)
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
Kod: Zaznacz cały
=JEŻELI.BŁĄD(JEŻELI(ZNAJDŹ(LITERY.WIELKIE(A1);LITERY.WIELKIE(A2))>0;1;0);0)
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Ź().
Re: Wyszukiwanie tekstu w komórkach
: ndz gru 25, 2016 1:02 pm
autor: Jermor
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.
Re: Wyszukiwanie tekstu w komórkach
: śr gru 28, 2016 2:44 pm
autor: gery77
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