wyszukiwanie części słowa regex

Użytkowanie arkusza kalkulacyjnego
dentopolis
Posty: 224
Rejestracja: pn wrz 23, 2013 2:48 pm

wyszukiwanie części słowa regex

Post autor: dentopolis »

kolumna C zawiera nazwy transakcji np.Kaufland 214 WAR
chciałbym aby wyszukiwanie pionowe nadało kategorię "firma" jeśli znajdzie słowo Kaufland (niezależnie od wielkości liter, żeby szukać części zawartości komórki)

mój obecny kod, w którym chciałbym umieścić regex wstawiający odpowiednią kategorię
=WYSZUKAJ.PIONOWO(C2;kategorie.$A$2:$B$10;2;0)
Załączniki
wyszukuj.ods
(17.12 KiB) Pobrany 71 razy
LibreOffice 7.6
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: wyszukiwanie części słowa regex

Post autor: Rafkus »

Libre daje radę z taką formułą:

Kod: Zaznacz cały

=INDEKS($kategorie.$B$2:$B$40;  PODAJ.POZYCJĘ(0; SZUKAJ.TEKST(kategorie.$A$2:$A$40; C2)*0; 0))
Funkcja SZUKAJ.TEKST szuka tekstu (nie zważając na wielkość liter) będącego w komórkach: kategorie.$A$2:$A$40 (jest to pewien obszar a więc formuła będzie funkcja macierzową) w tekście z C2. Wynikiem tej funkcji jest pozycja - na którym miejscu dane kryterium wystąpiło albo błąd jeśli nie znajdzie. Ciebie interesuje w zasadzie tylko czy dane kryterium wystąpiło dlatego wynik jest mnożony przez 0.

PODAJ.POZYCJĘ wyszukuje pierwsze wystąpienia 0 w macierzy wyników, jej wynik będzie numerem wiersza dla funkcji indeks.

UWAGA: Formuła ta nie sprawdza się w AOO, nawet jeśli zatwierdzi się ją wciskając klawisze CTRL+SHIFT+ENTER

Edit:
Sprawdziłem - AOO ma problem z przetworzeniem pozycji wartościami błędnymi, dlatego wystarczy drobna modyfikacja formuły, tj. dodania sprawdzenia czy funkcja szukająca tekst zwróciła błąd:

Kod: Zaznacz cały

=INDEKS(kategorie.$B$2:$B$40; PODAJ.POZYCJĘ(0; CZY.BŁĄD(SZUKAJ.TEKST(kategorie.$A$2:$A$40; F14)); 0))
W AOO formułę tę należy obowiązkowo zatwierdzić ją poprzez jednoczesne wciśnięte klawiszy CTRL+SHIFT+ENTER (formuła macierzowa)
Ostatnio zmieniony czw mar 17, 2022 6:25 pm przez Rafkus, łącznie zmieniany 2 razy.
Powód: Podałem działające rozwiązanie dla AOO
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
ODPOWIEDZ