Problem w Excel-u

Witam,

mam taki problem: Jakiej funkcji użyć w Excelu żeby utworzyć kod z nazwiska bez samogłosek

tzn. na przykład dla nazwiska Kowal kod wyglądałby “kwl”.

Wiem, że dla utworzenia kodu używa się funkcji “fragment.tekstu”, tylko jak to zrobić, żeby nie było tych samogłosek?

Z góry wielkie dzięki za pomoc. Mam nadzieję, że w miarę zrozumiale sformułowałem problem :smiley:

a nie możesz zrobić makra na funkcje zamień, wpisując tam samogłoski i oznaczając obszar szukania?

Hej,

Na dobrą sprawę inaczej zrobić się tego nie da, bo w funkcji fragment.tekstu nie da się zdefiniować filtrowania, które wyrzucałoby samogłoski. Chociaż… :slight_smile: Możliwe jest użycie połączenia funkcji fragment.tekstu, złącz.teksty, wyszukaj.pionowo i jeżeli, ale przyznam szczerze, że to oznacza naprawdę dużo, dużo klepania… :stuck_out_tongue:

:arrow: Tworzymy najpierw tabelę, w której wpisujemy wszystkie litery (dajmy, że to kolumna D), a w kolumnie obok definiujemy, czy dana litera jest samogłoską czy spółgłoską. Tak otrzymujemy tabelę o zakresie powiedzmy D1:E40.

:arrow: W kolumnie A wpisujemy nazwiska, a kolumna B będzie zawierać kod klienta, czyli nazwisko pozbawione samogłosek. Dla pierwszej litery nazwiska warunek, sprawdzający literę i zwracający jej wartość, gdy nie będzie samogłoską, jest następujący:

=JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;1;1);$D$1:$E$40;2;FAŁSZ)="SAMOGŁOSKA";"";FRAGMENT.TEKSTU(A1;1;1))

:arrow: Dla kolejnych liter nazwiska analogicznie (zmienia się tylko drugi argument w funkcji fragment.tekstu):

=JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;2;1);$D$1:$E$40;2;FAŁSZ)="SAMOGŁOSKA";"";FRAGMENT.TEKSTU(A1;2;1))

:arrow: By otrzymać gotową formułę, powyższe formuły - dla maksymalnie długiego nazwiska - należy umieścić w formule złącz.teksty, w poniższy sposób (formuła jest przygotowana dla 5-literowego nazwiska):

=ZŁĄCZ.TEKSTY(JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;1;1);$D$1:$E$40;2;FAŁSZ)="samogłoska";"";FRAGMENT.TEKSTU(A1;1;1));JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;2;1);$D$1:$E$40;2;FAŁSZ)="samogłoska";"";FRAGMENT.TEKSTU(A1;2;1));JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;3;1);$D$1:$E$40;2;FAŁSZ)="samogłoska";"";FRAGMENT.TEKSTU(A1;3;1));JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;4;1);$D$1:$E$40;2;FAŁSZ)="samogłoska";"";FRAGMENT.TEKSTU(A1;4;1));JEŻELI(WYSZUKAJ.PIONOWO(FRAGMENT.TEKSTU(A1;5;1);$D$1:$E$40;2;FAŁSZ)="samogłoska";"";FRAGMENT.TEKSTU(A1;5;1)))

Ewentualnie zostaje makro z kopiowaniem wartości i zamianą zdefiniowanych jako samogłoski liter.

Pozdrawiam,

Dimatheus

Wielkie dzięki za pomoc =D>

Na makro nie wpadłem, a to przecież takie oczywiste #-o

Dimatheus Twój sposób jest ciekawy, ale faktycznie dużo klepania… :smiley:

Hej,

Nie ma sprawy. :slight_smile: Czasami na najprostsze rozwiązania zdecydowanie najtrudniej wpaść… :slight_smile:

Dokładnie, tak jak pisałem w poście. :slight_smile:

Pozdrawiam,

Dimatheus