Strona 1 z 1

Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz kwie 07, 2013 9:40 pm
autor: kristoferson
Witam,
Mam taki problem: w kolumnie A są nazwy, w B dane1, w C dane2, w D dane 3.
W kolumnie F znajduje się cześć nazwy którą chciałbym zaleźć w kolumnie A i przypisać odpowiednie dane z kolumn B,C,D do kolumn G,H,I
Próbowałem z funkcją WYSZUKAJ.PIONOWO w połączeniu z funkcją ZNAJDŹ i ZNAJDŹ.TEKST ale nie dałem rady.
W załączniku plik z pokazaniem tego co chciałbym osiągnąć.
Może ktoś ma jakiś pomysł jak to zrobić ?

Pozdrawiam
Krzysiek

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz kwie 07, 2013 11:06 pm
autor: Jan_J
Narzędzia->Opcje->Calc->Oblicz
[ ] włącz wyrażenia regularne w formułach
[ ] kryteria wyszukiwania odnoszą się do całych komórek

Formuła dla Twojego przykładu wpisz do G2

Kod: Zaznacz cały

=PRZESUNIĘCIE(A1; PODAJ.POZYCJĘ(F2; $A$2:$A$5; 0); 1; 1; 3)
i zatwierdź Ctrl+Shift+Enter.

//było G2 przepraszam

Jak to działa: podaj.pozycję() znajduje numer pierwszego takiego wiersza w kolumnie A, który zawiera Twoją frazę z F2 jako część zawartości. Wtedy przesunięcie() pobiera 3 komórki z tego właśnie wiersza. Sposób zatwierdzania wymusza użycie rozszerzonej, wektorowej składni formuł.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz kwie 07, 2013 11:24 pm
autor: b0bi
Janie... z ciekawości postąpiłem jak opisałeś to w poście, czyli odhaczyłem podane opcje
do G2 wpisałem podaną formułę i zatwierdziłem Shift+Ctrl+Enter
i wyskakuje błąd 522 a formuła pojawia się w nawiasie {=PRZESUNIĘCIE(A1; PODAJ.POZYCJĘ(G2; $A$2:$A$5; 0); 1; 1; 3)}
Co może być nie tak?


EDIT:
trochę się pomęczyłem ale... udało się. Na bazie tego, co Jan zaproponował wykombinowałem, że w podanej przez Niego formule wkradł się błąd
w komórce G2 powinno być zatem:

Kod: Zaznacz cały

=PRZESUNIĘCIE($A$1;PODAJ.POZYCJĘ(F2;$A$2:$A$5;0);1)
w komórce H2 powinno być:

Kod: Zaznacz cały

=PRZESUNIĘCIE($A$1;PODAJ.POZYCJĘ(F2;$A$2:$A$5;0);2)
w komórce I2 powinno być:

Kod: Zaznacz cały

=PRZESUNIĘCIE($A$1;PODAJ.POZYCJĘ(F2;$A$2:$A$5;0);3)
lub w G2

Kod: Zaznacz cały

=PRZESUNIĘCIE($A$1;PODAJ.POZYCJĘ(F2;$A$2:$A$5;0);1;1;3)
zatwierdzone przez CTRL+SHIFT+ENTER
Oczywiście bez Jana by się nie obyło. Pozdrawiam

Przy okazji... dlaczego funkcja

Kod: Zaznacz cały

=PODAJ.POZYCJĘ(F2;$A$2:$A$5;0)
po odznaczeniu, że wyszukiwanie dotyczy całych komórek zwraca wynik (w tym przypadku 2)
natomiast wpisując formułę wyszukaj.pionowo

Kod: Zaznacz cały

=WYSZUKAJ.PIONOWO(F2;$A$2:$A$5;2;0)
zwraca błąd (w tym przypadku błąd:502)?? czyli w tym przypadku jakby wyszukiwanie częściowe nie działało? Jaka jest różnica między tymi funkcjami, dlaczego w pierwszym przypadku przeszukiwanie częściowe działa, a w drugim nie?

Jeszcze jedno: Dlaczego kopiowanie przez "przeciągnięcie" takiego zatwierdzenia CTRL+SHIFT+ENTER - czyli macierzy, nie działa, a jedynie CTRL+C, CTRL+V?

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn kwie 08, 2013 2:47 am
autor: Jan_J
b0bi pisze:lub w G2

Kod: Zaznacz cały

=PRZESUNIĘCIE($A$1;PODAJ.POZYCJĘ(F2;$A$2:$A$5;0);1;1;3)
Oczywiście; sorry, testowałem w przesuniętym bloku
Przy okazji... dlaczego funkcja

Kod: Zaznacz cały

=PODAJ.POZYCJĘ(F2;$A$2:$A$5;0)
po odznaczeniu, że wyszukiwanie dotyczy całych komórek zwraca wynik (w tym przypadku 2) natomiast wpisując formułę wyszukaj.pionowo

Kod: Zaznacz cały

=WYSZUKAJ.PIONOWO(F2;$A$2:$A$5;2;0)
zwraca błąd (w tym przypadku błąd:502)?? czyli w tym przypadku jakby wyszukiwanie częściowe nie działało? Jaka jest różnica między tymi funkcjami, dlaczego w pierwszym przypadku przeszukiwanie częściowe działa, a w drugim nie?
Działa w obu, tylko przy wyszukaj() zadałeś obszar A:A w którym nie ma drugiej kolumny, żeby z niej zwrócić wynik. Ale radzę używać schematu z przesunięcie, bo wtedy wyszukuje się tylko raz, a nie osobno dla każdego wpisu.
Dlaczego kopiowanie przez "przeciągnięcie" takiego zatwierdzenia CTRL+SHIFT+ENTER - czyli macierzy, nie działa, a jedynie CTRL+C, CTRL+V?
Tak od zawsze mają formuły wektorowe. Ale tzw. szybkie wypełnienie (dwuklik na narożniku bloku) powinno działać.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn kwie 08, 2013 12:06 pm
autor: b0bi
Jan_J pisze:
b0bi pisze: (Dlaczego)... wpisując formułę wyszukaj.pionowo

Kod: Zaznacz cały

=WYSZUKAJ.PIONOWO(F2;$A$2:$A$5;2;0)
zwraca błąd... czyli w tym przypadku jakby wyszukiwanie częściowe nie działało?
Działa w obu, tylko przy wyszukaj() zadałeś obszar A:A w którym nie ma drugiej kolumny, żeby z niej zwrócić wynik.
No tak... przy tym kombinowaniu... zapędziłem się w ślepy róg i rzeczywiście nie zauważyłem, że zmieniłem obszar wskazując tylko na pierwszą kolumnę.
Dzięki i pozdrawiam.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn kwie 08, 2013 8:53 pm
autor: kristoferson
Wielki dzięki,
wszystko działa jak trzeba.

Pozdrawiam
Krzysiek

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz wrz 08, 2013 2:44 pm
autor: bobim
Mam podobny problem otóż, mam kolumnę z danymi, które w nazwach zawierają poszukiwane przeze mnie fragmenty. Kolejne dwie lub więcej kolumn to właśnie te fragmenty. Chcę przeszukać pierwszą kolumnę a gdy znajdzie fragment z drugiej lub trzeciej kolumny żeby go wyświetlić. Jeśli znajdzie oba to wyświetla pierwszy lub wcale. Problem w tym, że pierwsza kolumna może mieć np. 10tys pozycji a te z fragmentami tekstu różnie. Pierwsza np. 1000 a druga 50. Może ktoś podpowie jak to można ugryźć? Próbowałem opisami z powyższych postów ale nic mi nie wychodzi ;(.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz wrz 08, 2013 8:53 pm
autor: belstar
W pliku który wstawiłeś, dane przykładowe są nieco mylące.
  1. Czy wyraz cosik jest odpowiednikiem realnych danych i występuje we wszystkich wierszach?
  2. Czy poszukiwane parametry występują zawsze na końcu?
  3. Czy przed parametrami jest stała liczba liter w nazwie?
Wstawiłem ci plik, który może trochę zbliży cię do rozwiązania.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: ndz wrz 08, 2013 10:06 pm
autor: bobim
belstar pisze:Czy wyraz cosik jest odpowiednikiem realnych danych i występuje we wszystkich wierszach?
Nie. Dane mają być różne i rzadko do siebie podobne, chociaż mogą się powtarzać.
belstar pisze:Czy poszukiwane parametry występują zawsze na końcu?
Poszukiwane parametry mogą być w tekście nie koniecznie w środku lub na końcu, natomiast nie występują na początku.
belstar pisze:Czy przed parametrami jest stała liczba liter w nazwie?
W nazwie może być od minimum 3 znaków do aż 100.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn wrz 09, 2013 3:09 pm
autor: milkow70
Moja funkcja WYSZUKAJ.PIONOWO() źle wyszukuje
Mianowicie mam w komórkach M27:O40 zakres danych wyszukiwania
Dane w kolumnie M27:M40 to kryterium wyszukiwania które określa się w komórce C5 zgodnie z listą rozwijaną ($'DANE WEJŚC'.$M$27:$M$40)
Dane w kolumnach N:27:N40 i O27:O40 to wyszukiwane wartości które wyświetlane są odpowiednio w komórkach C6 i C7.

C6 =WYSZUKAJ.PIONOWO(C5;M27:O40;2)
C7 =WYSZUKAJ.PIONOWO(C5;M27:O40;3)

Wynik wyszukiwania w kilku przypadkach jest błędny (w załączniku) - w kolumnach na kolorowo oznaczono odpowiednio wartości, które wyszukiwane są prawidłowo - "ok", i które błędnie (N/D lub wartość jaka jest wyświetlona po ustaleniu kryterium wyszukiwania w komórce C5)
tabelka.png
Gdzie tkwi błąd?

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn wrz 09, 2013 9:08 pm
autor: belstar
milkow70 pisze:Gdzie tkwi błąd?
Poszukaj alternatywnych rozwiązań. http://forum.openoffice.org/pl/forum/vi ... f=4&t=2071

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn wrz 09, 2013 10:30 pm
autor: belstar
bobim pisze:Poszukiwane parametry mogą być w tekście nie koniecznie w środku lub na końcu, natomiast nie występują na początku.
Czy parametr 2 występuje zawsze po pierwszym?

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: pn wrz 09, 2013 10:59 pm
autor: bobim
Nie zawsze. Ale wystarczyło by mi jakbym mógł wyszukać pierwsze wystąpienie parametru a zrezygnowałbym z wyszukiwania sytuacji gdy w jednym wierszu jest więcej niż jeden. Czyli gdy funkcja znajdzie dowolny parametr jako pierwszy wypisuje go i przechodzi sprawdzać linijkę następną. Czy funkcja wyszukaj pionowo potrzebuje do prawidłowego działania dwóch kolumn o równej długości?

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: wt wrz 10, 2013 11:30 am
autor: milkow70
belstar pisze:
milkow70 pisze:Gdzie tkwi błąd?
Poszukaj alternatywnych rozwiązań. http://forum.openoffice.org/pl/forum/vi ... f=4&t=2071
W dalszym ciągu się haczy. Wyszukuje mi wartości z wierszy powyżej lub #N/D
Wygląda na to, że funkcje wyszukiwania mają problem z adresowaniem komórek czy cóś.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: śr wrz 11, 2013 8:48 am
autor: belstar
bobim pisze:Nie zawsze. Ale wystarczyło by mi jakbym mógł wyszukać pierwsze wystąpienie parametru
A modyfikacja wstawionego przykładu, żeby funkcja pobierała parametry z kolejnych wierszy by nie była wystarczająca.
Dla parametru nr 1

Kod: Zaznacz cały

=INDEKS($A$2:$A$20;MIN.K(JEŻELI(CZY.BŁĄD(SZUKAJ.TEKST($C2;$A$2:$A$20;2));"";WIERSZ(A2:A20)-MIN(WIERSZ(A2:A20))+1);WIERSZ(A$1));KOLUMNA(A$1))
Dla parametru nr2

Kod: Zaznacz cały

=INDEKS($A$2:$A$20;MIN.K(JEŻELI(CZY.BŁĄD(SZUKAJ.TEKST($D2;$A$2:$A$20;2));"";WIERSZ(A2:A20)-MIN(WIERSZ(A2:A20))+1);WIERSZ(A$1));KOLUMNA(A$1))
Dla obu

Kod: Zaznacz cały

=INDEKS($A$2:$A$20;MIN.K(JEŻELI(CZY.BŁĄD(SZUKAJ.TEKST($C2;$A$2:$A$20;2)*SZUKAJ.TEKST($D2;$A$2:$A$20;2));"";WIERSZ(A2:A20)-MIN(WIERSZ(A2:A20))+1);WIERSZ(A$1));KOLUMNA(A$1))
Wszystkie tablicowe.

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: czw wrz 12, 2013 12:25 am
autor: bobim
U mnie to nie działa :-(, błąd 504. Wszędzie wyskakuje mi cosik a. Nie wiem czy walczyć z tym bo tych parametrów może być max tysiąc i czy wtedy indeks będzie miał zastosowanie?

Re: Funkcja wyszukaj pionowo i znajdź tekst - problem

: czw wrz 12, 2013 2:27 am
autor: belstar
bobim pisze:U mnie to nie działa :-(, błąd 504
Formuła tablicowa, trzeba zatwierdzić SHIFT+CTRL+ENTER
Stworzyłem plik testowy
danych = 20000
Parametr 1 = 1000
Parametr 2 = 1000
Oba =1000
Komfort pracy nie ucierpiał znacznie, zapis po zmianie formatowania komórek jest odczuwalnie dłuższy. Tutaj wstawię mniejszy o połowę ze względu na wielkość pliku.