logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Jak rozdzielić tekst gwiazdkami w Excelu?

charls 11 Wrz 2018 20:32 798 6
REKLAMA
  • #1 17435580
    charls
    Poziom 2  
    Posty: 3
    Witam szanowne grono expertow,

    mam zagłostke.
    Poszukuje rozwiązania w Excelu, dzięki któremu będę mógł dowolny ciąg znaków - zwykle nazwy własne - rozdzielić gwiazdkami:
    przykład:
    komórka A1: abcd efgh
    spodziewany efekt w komórce A2: a*b*c*d*e*f*g*h

    Z góry dziękuje za podpowiedzi
  • REKLAMA
  • #2 17435677
    dt1
    Admin grupy komputery
    Posty: 47961
    Pomógł: 7262
    Ocena: 8187
    Witaj. Czy ciąg jest zawsze tej samej długości, a jeśli nie, to jakiej maksymalnej długości można się spodziewać? Czy zawsze jest rozdzielony co jeden znak? Spacje zdaje się mają być ignorowane, a jak z innymi znakami?
  • REKLAMA
  • Pomocny post
    #4 17435888
    dt1
    Admin grupy komputery
    Posty: 47961
    Pomógł: 7262
    Ocena: 8187
    Najprostsza może i tak, ale spację też odseparuje gwiazdkami, ostatniej litery wcale nie wrzuci, jeśli zawartość A1 będzie krótsza to na samym końcu dolepi kilka gwiazdek, a jeśli A1 będzie dłuższa to zignoruje wszystko za ósmym znakiem... Aktualnie w wyniku tej formuły dostaniemy wynik "a*b*c*d* *e*f*g" - oczywiście łatwo tę funkcję poprawić, ale pewnie warto zaczekać, aż Autor precyzyjniej określi, o co mu dokładnie chodzi...
  • REKLAMA
  • #5 17435930
    charls
    Poziom 2  
    Posty: 3
    dt1 napisał:
    Witaj. Czy ciąg jest zawsze tej samej długości, a jeśli nie, to jakiej maksymalnej długości można się spodziewać? Czy zawsze jest rozdzielony co jeden znak? Spacje zdaje się mają być ignorowane, a jak z innymi znakami?


    No niestety, nie. W każdej komórce są różnej długości ciągi znaków. W największej mierze, chodzi o same litery, chociaż mogą się zdażać również cyfry oraz znaki specjalne np. "." (kropka).

    zatem rozszerze mój zamysł:
    A1: abcd efg
    cel w B1: a*b*c*d*e*f*g

    A2: xyz 3
    cel w B2: x*y*z*3

    A3: trala S.A.
    cel w B3: t*r*a*l*a*S*A*
  • REKLAMA
  • Pomocny post
    #6 17435973
    dt1
    Admin grupy komputery
    Posty: 47961
    Pomógł: 7262
    Ocena: 8187
    Może i da się to zrobić formułą, ale ja bym to zrobił takim makro:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    W załączniku przykładowy plik xls, zawiera makro więc oczywiście należy zezwolić na wykonywanie makr.

    Const Acc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

    W tej linijce są zdefiniowane wszystkie znaki, które są dopuszczalne. Możesz sobie dopisać jakiekolwiek inne. Jeśli znaku nie ma na tej liście, to będzie on ignorowany, czyli w tym przypadku jedynie litery małe, wielkie oraz cyfry są przepisywane do wyniku.
    Załączniki:
    • split.zip (6.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 17437763
    charls
    Poziom 2  
    Posty: 3
    wielkie dzięki za pomysł i przesłany kod.
    Po krotkiej analizie, dopisałem jeszcze po gwiazdce na poczatku ciagu i na końcu.

    Mój cel został osiągnięty.
    Dziękuje

    Dodano po 1 [minuty]:

    Użytkownik Dt1 pokazał całe rozwiązanie przy użyciu VB i stworzeniu nowej funkcji

Podsumowanie tematu

✨ Użytkownik poszukiwał sposobu na rozdzielenie ciągu znaków w Excelu, aby uzyskać efekt, w którym każdy znak jest oddzielony gwiazdką. W odpowiedziach zaproponowano różne podejścia, w tym formułę z użyciem funkcji ZŁĄCZ.TEKSTY oraz makro w VBA, które umożliwia bardziej elastyczne przetwarzanie tekstu, ignorując znaki niealfanumeryczne. Użytkownik dostosował kod makra, aby dodać gwiazdki na początku i końcu ciągu, osiągając zamierzony efekt.
Wygenerowane przez model językowy.
REKLAMA