🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#14543
Author: Sławomir Załęcki
Date: Fri, 19 Nov 2010 20:25
55 lines
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
#14544
Author: Tomasz Minkiewicz
Date: Fri, 19 Nov 2010 21:29
65 lines
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
#14546
Author: JaromirD
Date: Fri, 19 Nov 2010 22:47
73 lines
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
#14547
Author: JaromirD
Date: Fri, 19 Nov 2010 22:51
9 lines
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
#14545
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 09:04
23 lines
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
#14548
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 09:11
34 lines
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
#14549
Author: Sławomir Załęcki
Date: Sat, 20 Nov 2010 10:14
31 lines
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