Kategorie szkoleń | Egzaminy | Kontakt
  • 4
  • 2
  • 3.9K

W firmie otrzymujemy raporty z naszego programu w postaci plików Excela. Dane, które są w pliku Excela są wpisane w kolumnie. Znajduje się tam tekst oraz cyfry. Potrzeba oddzielić tekst od liczb i umieścić w osobnych kolumnach. Między tekstem, a liczbami w komórkach znajduje się zawsze taki sam znak. Jak rozdzielić tekst od liczb w Excel 2007?

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 10.06.2013
Komentarze (2)
gotowe do publikacji
Skomentował : @ TRENER ALTKOM AKADEMII ,26.06.2013

Odpowiedzi (4)

  • 5

Jeżeli tekst w komórkach zawiera powtarzający się znak oddzielający tekst od liczb np. „spacja”, to możliwym rozwiązaniem jest zastosowanie polecenia z zakładki DANE->grupa NARZĘDZIA DANYCH -> TEKST NA KOLUMNY

Oto kolejne kroki:

1. Należy zaznaczyć komórki w kolumnie zawierającej tekst mający zostać rozdzielony.



2. Następnie należy nacisnąć przycisk TEKST NA KOLUMNY (z zakładki Dane) – otwiera to kreatora.
3. W pierwszym kroku kreatora zaznaczmy opcję TEKST ROZDZIELANY i naciskamy przycisk DALEJ.

 




4. W drugim kroku, na liście ograniczników należy zaznaczyć znak, który ma wskazać miejsce podziału na kolumny (jeżeli jest spacja w tekście w komórkach to „spacja”); naciskamy DALEJ





5. Jeżeli w liczbach w komórkach, jako znak miejsca dziesiętnego lub separator tysięcy, występują inne znaki niż stosowane standardowo w naszym Excelu, to zaznacza się to w dodatkowym okienku otwieranym przyciskiem ZAAWANSOWANE.





6. Krok 3 kreatora pozwala również na wskazanie innego miejsca docelowego niż początek zaznaczenia.
7. Po ustawieniu wszystkich opcji naciskamy przycisk ZAKOŃCZ i jeżeli wcześniej wszystko zostało prawidłowo ustawione to sprawa załatwiona.



Można również zastosować funkcje tekstowe LEWY, PRAWY, SZUKAJ.TEKST

  • Odpowiedział
  • @ | 10.06.2013
  • TRENER ALTKOM AKADEMII
  • 6

Mam podobny problem z tym, że liczba może wystąpić raz na początku a raz na końcu wpisu. Da się jakoś wypisać tę liczbę w kolejnej kolumnie?

  • Odpowiedział
  • @ | 21.06.2013
  • TRENER ALTKOM AKADEMII
Komentarze
Jak ożywiona dyskusja :)
Darku bardzo fajny wpis, przy czym wpisałeś go jako kolejną propozycję odpowiedzi, to jest de facto pytanie. Twój wpis najlepiej by pasował w komentarzu do pytania
Skomentował : @ TRENER MODERATOR ALTKOM AKADEMII ,22.06.2013
  • 6

Jeżeli chodzi o to, to można to zrobić tak:


W kolumnie B: =JEŻELI(JEŻELI.BŁĄD(LEWY(A1;ZNAJDŹ(" ";A1;1)-1)*1;FAŁSZ);PRAWY(A1;DŁ(A1)-ZNAJDŹ(" ";A1));LEWY(A1;ZNAJDŹ(" ";A1;1)-1))
W kolumnie C: =WARTOŚĆ(JEŻELI.BŁĄD(LEWY(A1;ZNAJDŹ(" ";A1;1)-1)*1;PRAWY(A1;DŁ(A1)-ZNAJDŹ(" ";A1))))

pawel_niemyt
  • Odpowiedział
  • @ pawel_niemyt | 21.06.2013
Komentarze
wow
Skomentował : @ TRENER ALTKOM AKADEMII ,10.07.2013
W firmie mamy podobny problem z tym, że potrzebujemy znaleźć w notatce (komórka z tekstem) ciąg dwunastu cyfr (nr umowy klienta), niestety nie ma znacznika typu spacja czy średnik, od którego ten ciąg może się pojawić, ciąg cyfr może pojawić się zarówno na początku, w środku jak i na końcu tekstu (to klient wprowadza dane do notatki), dodatkowym utrudnieniem jest to iż w tekście mogą pojawić się też inne liczby nie związane z ciągiem np. jeśli klient wprowadzi w notatkę zmianę adresu wtedy będziemy mieli np. nr domu czy kod pocztowy czego nie chcemy wyciągać. Próbowałam szukać pomysłów w czeluściach internetu jednak wszędzie są pomysły wykorzystujące jakiś znacznik a tutaj go niestety nie mamy.
Może ktoś z trenerów będzie miał pomysł na ten problem (może być nawet VBA)
Skomentował : @ Monika-Kwiatkowska ,10.03.2017
  • 0
  • 0
  • 8
Nie trzeba VBA, wystarczy odpowiednia tablica (czyli funkcję wprowadzamy z ctrl+shift+enter) :)

=FRAGMENT.TEKSTU(A1;PODAJ.POZYCJĘ(PRAWDA;DŁ(--FRAGMENT.TEKSTU(A1;WIERSZ($A$1:$A$100);12))=12;0);12)

Funkcja pobiera z komórki A1 ciągi 12. znaków (kolejno od pierwszego, drugiego, trzeciego itd.), próbuje przekształcić je na liczbę (--) i sprawdza, czy wynik ma 12 cyfr, a ostatecznie zwraca pierwszy pozytywny rezultat. Niestety, za prostotą idą pewne słabości: nie znajdzie ciągu zaczynającego się od zera (--0123 = 123, czyli tracimy wiodące zera i liczba robi się krótsza), przy liczbach mających więcej niż 12 cyfr wciąż zwróci pierwsze 12 (resztę utnie), a po trzecie nie poinformuje, jeśli w tekście będzie więcej trafień (też zróci pierwsze z nich).

PS: Założyłem, że tekst w A1 ma maksymalnie 100 znaków - jeśli spodziewasz się więcej, rozszerz odpowiednio zakres $A$1:$A$100.
Skomentował : @ Mirosław_Janiak ,17.07.2017
  • 1
  • 7
  • 1
  • 0

Jeżeli chodzi o to, to można to zrobić tak:


 

W kolumnie B: =JEŻELI(JEŻELI.BŁĄD(LEWY(A1;ZNAJDŹ(" ";A1;1)-1)*1;FAŁSZ);PRAWY(A1;DŁ(A1)-ZNAJDŹ(" ";A1));LEWY(A1;ZNAJDŹ(" ";A1;1)-1))
W kolumnie C: =WARTOŚĆ(JEŻELI.BŁĄD(LEWY(A1;ZNAJDŹ(" ";A1;1)-1)*1;PRAWY(A1;DŁ(A1)-ZNAJDŹ(" ";A1))))

Alek
  • Odpowiedział
  • @ Alek | 07.07.2017
    • 0
    • 0
    • 0