Thread View: alt.pl.openoffice
7 messages
7 total messages
Started by Sławomir Załęcki
Fri, 19 Nov 2010 20:25
[Calc] Wyszukiwanie w tekście
Author: Sławomir Załęcki
Date: Fri, 19 Nov 2010 20:25
Date: Fri, 19 Nov 2010 20:25
55 lines
2534 bytes
2534 bytes
Witam, Mam tabelkę (dwie kolumny) z symbolami i liczbami: (kol A) (kol B) S345 1275 N765 2154 N6F3 1629 MNS3 1962 NHS6 2360 N7HG 1949 V12A 660 8199K 1453 NN7 1343 8450S 2058 NA3D 1182 Q340 1347 BB40 2100 itd. W innym miejscu mam kolumnę z nazwami, np: Próbka KT/NHS6/052008 Próbka PAA/V12A/2009 Próbka LS/NN7-I/012007 Wzorzec WZ/W-N765/2009 Próbka LS/NA3D/2007 Próbka LS/NN7-II/022007 itd. Obok tej kolumny mam wypisać liczby, które odpowiadają wyszukanym symbolom z pierwszej tabeli: (kol G) (kol H) Próbka KT/NHS6/052008 2360 Próbka PAA/V12A/2009 660 Próbka LS/NN7-I/012007 1343 Wzorzec WZ/W-N765/2009 2154 Próbka LS/NA3D/2007 1182 Próbka LS/NN7-II/022007 1343 itd. używam do tego takiej formuły (potworka) w kolumnie H: =JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$1;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$2;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST(A$3$;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$4;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$5;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$6;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$7;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$8;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$9;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$10;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$11;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$12;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$13;G1));"-";$B$13);$B$12);$B$11);$B$10);$B$9);$B$8);$B$7);$B$6);$B$5);$B$4);$B$3);$B$2);$B$1) Problem w tym, że tabelka się rozrasta i robi się z tego koszmar. Czy ktoś ma pomysł jak to uprościć, a nie zagnieżdżać w nieskończoność tej formuły? Sławek -- zamień v na w adresie e-mail http://www.sprintserwis.eu/ http://sklep.vectordesign.pl/
Re: [Calc] Wyszukiwanie w tekście
Author: Tomasz Minkiewicz
Date: Fri, 19 Nov 2010 21:29
Date: Fri, 19 Nov 2010 21:29
65 lines
3303 bytes
3303 bytes
On Fri, 19 Nov 2010 21:25:53 +0100 Sławomir Załęcki <sprintservis@poczta.onet.pl> wrote: > Witam, > > Mam tabelkę (dwie kolumny) z symbolami i liczbami: > (kol A) (kol B) > S345 1275 > N765 2154 > N6F3 1629 > MNS3 1962 > NHS6 2360 > N7HG 1949 > V12A 660 > 8199K 1453 > NN7 1343 > 8450S 2058 > NA3D 1182 > Q340 1347 > BB40 2100 > itd. > > W innym miejscu mam kolumnę z nazwami, np: > Próbka KT/NHS6/052008 > Próbka PAA/V12A/2009 > Próbka LS/NN7-I/012007 > Wzorzec WZ/W-N765/2009 > Próbka LS/NA3D/2007 > Próbka LS/NN7-II/022007 > itd. > > Obok tej kolumny mam wypisać liczby, które odpowiadają > wyszukanym symbolom z pierwszej tabeli: > > (kol G) (kol H) > Próbka KT/NHS6/052008 2360 > Próbka PAA/V12A/2009 660 > Próbka LS/NN7-I/012007 1343 > Wzorzec WZ/W-N765/2009 2154 > Próbka LS/NA3D/2007 1182 > Próbka LS/NN7-II/022007 1343 > itd. > > używam do tego takiej formuły (potworka) w kolumnie H: > =JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$1;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$2;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST(A$3$;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$4;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$5;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$6;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$7;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$8;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$9;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$10;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$11;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$12;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$13;G1));"-";$B$13);$B$12);$B$11);$B$10);$B$9);$B$8);$B$7);$B$6);$B$5);$B$4);$B$3);$B$2);$B$1) > > Problem w tym, że tabelka się rozrasta i robi się > z tego koszmar. Dopiero robi? Samo użycie takiej formuły, to już jest koszmar. ;> > Czy ktoś ma pomysł jak to uprościć, a nie zagnieżdżać > w nieskończoność tej formuły? Potrzebujesz funkcyj: search (żeby ustalić, gdzie są slashe we wzorcu), mid (żeby wybrać fragment między slashami) i vlookup (żeby na podstawie fragmentu wybrać właściwą wartość z drugiej tabelki). Vlookup po polsku nazywa się wyszukaj.pionowo, a te pozostałe to nie wiem (pewnie „szukaj” albo „znajdź” i może „fragment.tekstu”?). Tylko nie pakuj znów wszystkiego do jednej frankenkomórki – zrób sobie kolumny z wartościami pomocniczymi. -- Tomasz Minkiewicz <tommink@gmail.com>
Re: [Calc] Wyszukiwanie w tekście
Author: JaromirD
Date: Fri, 19 Nov 2010 22:47
Date: Fri, 19 Nov 2010 22:47
73 lines
3389 bytes
3389 bytes
Sławomir Załęcki wrote:
> Witam,
>
> Mam tabelkę (dwie kolumny) z symbolami i liczbami:
> (kol A) (kol B)
> S345 1275
> N765 2154
> N6F3 1629
> MNS3 1962
> NHS6 2360
> N7HG 1949
> V12A 660
> 8199K 1453
> NN7 1343
> 8450S 2058
> NA3D 1182
> Q340 1347
> BB40 2100
> itd.
>
> W innym miejscu mam kolumnę z nazwami, np:
> Próbka KT/NHS6/052008
> Próbka PAA/V12A/2009
> Próbka LS/NN7-I/012007
> Wzorzec WZ/W-N765/2009
> Próbka LS/NA3D/2007
> Próbka LS/NN7-II/022007
> itd.
>
> Obok tej kolumny mam wypisać liczby, które odpowiadają
> wyszukanym symbolom z pierwszej tabeli:
>
> (kol G) (kol H)
> Próbka KT/NHS6/052008 2360
> Próbka PAA/V12A/2009 660
> Próbka LS/NN7-I/012007 1343
> Wzorzec WZ/W-N765/2009 2154
> Próbka LS/NA3D/2007 1182
> Próbka LS/NN7-II/022007 1343
> itd.
>
> używam do tego takiej formuły (potworka) w kolumnie H:
>
=JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$1;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$2;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST(A$3$;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$4;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$5;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$6;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$7;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$8;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$9;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$10;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$11;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$12;G1));JEŻELI(CZY.BŁ(SZUKAJ.TEKST($A$13;G1));"-";
$B$13);$B$12);$B$11);$B$10);$B$9);$B$8);$B$7);$B$6);$B$5);$B$4);$B$3);$B$2);
$B$1)
>
> Problem w tym, że tabelka się rozrasta i robi się
> z tego koszmar.
>
> Czy ktoś ma pomysł jak to uprościć, a nie zagnieżdżać
> w nieskończoność tej formuły?
>
> Sławek
>
Po pierwsze, dobrze by było, żebyś w kolumnie A zawsze pisał tę samą ilość
znaków z kolumny G po ukośniku; 4 chyba wystarczą; mogą być myślniki "-".
Po drugie tajemne zaklęcie ma postać:
=WYSZUKAJ.PIONOWO(MID($G1;SZUKAJ.TEKST("/";$G1;1)+1;4);$A$1:$B$14;2;0)
Idąc od środka:
- szukaj.tekst podaje numer pozycji - licząc od pierwszego znaku - na której
znajduje się ukośnik w komórce kolumny G
- mid zwraca 4 znaki począwszy od pozycji ukośnika +1 (bo nie chcesz samego
ukośnika, tylko znaki po nim)
- wyszukaj.pionowo wyszukuje 4 znaki zwracane przez funkcję mid w macierzy
A1:B14 i zwraca zawartość odpowiedniej komórki w 2. wierszu. Zero na końcu
jest dlatego, że prawdopodobnie wartości w kolumnie A nie będą posortowane
alfabetycznie. Jeśli będą, można je pominąć.
Jest to na tyle krótki wzór, że można go wpisać w jedną komórkę.
JaromirD
Re: [Calc] Wyszukiwanie w tekście
Author: JaromirD
Date: Fri, 19 Nov 2010 22:51
Date: Fri, 19 Nov 2010 22:51
9 lines
1111 bytes
1111 bytes
JaromirD wrote:
> Po drugie tajemne zaklęcie ma postać:
> =WYSZUKAJ.PIONOWO(MID($G1;SZUKAJ.TEKST("/";$G1;1)+1;4);$A$1:$B$14;2;0)
Małe sprostowanie. Powinno być $A1:$B14 bo inaczej po przeciągnięciu wzoru w
dół nie zadziała. Czyli
=WYSZUKAJ.PIONOWO(MID($G1;SZUKAJ.TEKST("/";$G1;1)+1;4);$A1:$B14;2;0)
Re: [Calc] Wyszukiwanie w tekście
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 09:04
Date: Sat, 20 Nov 2010 09:04
23 lines
1844 bytes
1844 bytes
W dniu 19.11.2010 22:29, Tomasz Minkiewicz pisze: [ciach] > > Potrzebujesz funkcyj: search (żeby ustalić, gdzie są slashe we wzorcu), > mid (żeby wybrać fragment między slashami) i vlookup (żeby na > podstawie fragmentu wybrać właściwą wartość z drugiej tabelki). > > Vlookup po polsku nazywa się wyszukaj.pionowo, a te pozostałe to nie > wiem (pewnie „szukaj” albo „znajdź” i może „fragment.tekstu”?). > Tylko nie pakuj znów wszystkiego do jednej frankenkomórki – zrób sobie > kolumny z wartościami pomocniczymi. > No tak, wyszukaj.pionowo, tego potrzebowałem! Chyba już sobie poradzę, aczkolwiek nie będzie to takie proste, bo szukane symbole nie zawsze są po pierwszym slashu. Dzięki, Sławek -- zamień v na w adresie e-mail http://www.sprintserwis.eu/ http://sklep.vectordesign.pl/
Re: [Calc] Wyszukiwanie w tekście
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 09:11
Date: Sat, 20 Nov 2010 09:11
34 lines
2499 bytes
2499 bytes
W dniu 19.11.2010 23:47, JaromirD pisze:
[ciach]
> Po pierwsze, dobrze by było, żebyś w kolumnie A zawsze pisał tę samą ilość
> znaków z kolumny G po ukośniku; 4 chyba wystarczą; mogą być myślniki "-".
> Po drugie tajemne zaklęcie ma postać:
> =WYSZUKAJ.PIONOWO(MID($G1;SZUKAJ.TEKST("/";$G1;1)+1;4);$A$1:$B$14;2;0)
> Idąc od środka:
> - szukaj.tekst podaje numer pozycji - licząc od pierwszego znaku - na której
> znajduje się ukośnik w komórce kolumny G
> - mid zwraca 4 znaki począwszy od pozycji ukośnika +1 (bo nie chcesz samego
> ukośnika, tylko znaki po nim)
> - wyszukaj.pionowo wyszukuje 4 znaki zwracane przez funkcję mid w macierzy
> A1:B14 i zwraca zawartość odpowiedniej komórki w 2. wierszu. Zero na końcu
> jest dlatego, że prawdopodobnie wartości w kolumnie A nie będą posortowane
> alfabetycznie. Jeśli będą, można je pominąć.
> Jest to na tyle krótki wzór, że można go wpisać w jedną komórkę.
>
> JaromirD
Twoja podpowiedź jest podobna do podpowiedzi Tomka, aczkolwiek
wzbogacona pięknym przykładem formułki :)
Nie używałem dotąd funkcji wyszukaj.pionowo, więc przykładzik
bardzo mi się przyda. Będę musiał jednak jeszcze pokombinować,
bo szukane symbole nie zawsze są po pierwszym slashu, ale
chyba sobie już poradzę.
Jak uda mi się dorobić formułkę to ją tu opublikuję.
Dzięki,
Sławek
--
zamień v na w adresie e-mail
http://www.sprintserwis.eu/
http://sklep.vectordesign.pl/
Re: [Calc] Wyszukiwanie w tekście
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 10:14
Date: Sat, 20 Nov 2010 10:14
31 lines
2055 bytes
2055 bytes
W dniu 19.11.2010 23:47, JaromirD pisze:
[ciach]
> =WYSZUKAJ.PIONOWO(MID($G1;SZUKAJ.TEKST("/";$G1;1)+1;4);$A$1:$B$14;2;0)
Niestety w moim przypadku ciężko zrobić to w jednej formułce,
gdyż jest kilka wyjątków, które musiałem uwzględnić (znów
powstałby potworek).
Ale udało mi się rozwiązać problem dzięki Wam.
Nie mogłem przy tym wziąć pod uwagę tylko 4 znaków.
U mnie MID zwraca wszystko pomiędzy dwoma kolejnymi znakami
slash, co pojedynczą formułką można by przedstawić tak:
=WYSZUKAJ.PIONOWO(MID(G2;SZUKAJ.TEKST("/";$G1)+1;SZUKAJ.TEKST("/";$G1;SZUKAJ.TEKST("/";$G1)+1)-SZUKAJ.TEKST("/";$G1)-1);$A$1:$B$14;2;0)
Oczywiście, mam to też rozbite na kolumny :)
Kolumna K: =SZUKAJ.TEKST("/";$G1)
Kolumna L: =SZUKAJ.TEKST("/";$G1;K1+1)
Kolumna M: =MID(G1;K1+1;L1-K1-1)
W każdym razie śmiga mi teraz aż miło i mogę w tabeli symboli
spokojnie dopisywać następne pozycje.
Jeszcze raz dzięki za pomoc,
Sławek
--
zamień v na w adresie e-mail
http://www.sprintserwis.eu/
http://sklep.vectordesign.pl/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads