wtorek, 20 maja 2014

Usuwanie zbędnych spacji w komorkach excel

Pewnie każdy z was pracując w excel'u na danych importowanych z innych programów napotkał się na problem zbędnych spacji przed lub za danymi potrzebnymi nam do dalszej analizy. Program Excel daje nam dwie możliwości na ich wyczyszczenie.





Jak widzimy na obrazku powyżej, tekst jest wyrównany do lewej a i tak nie przylega do krawędzi komórki. Dzięki maku/funkcji którą dziś opiszę będziecie mogli się pozbyć takich "przedrostków" z pliku excel.


Przy użyciu formuł excel

Pierwsza metoda polega na przepisaniu do komórki/zakresu, danych wejściowych poprzedzając je funkcją.

Jest to metoda szybka dla małej ilości danych, ponieważ musimy przepisać je jeszcze raz do innej komórki/arkusza dodając formułę "=USUŃ.ZBĘDNE.ODSTĘPY(Adres)" podając w nawiasie adres komórki z ciągiem znaków który chcemy wyczyścić. O adresowaniu w programie excel możecie poczytać w poprzednim moim artykule adresowanie excel.
Opisaną wyżej funkcję uważam że jest mało efektowna, gdyż oczyszczone dane mamy w postaci formuły ("=USUŃ.ZBĘDNE.ODSTĘPY(A5)") przez co może komplikować nam dalszą pracę z danymi. Oczywiście możemy skopiować uzyskany zakres i wkleić we jako wartości ale tworzy nam to dodatkową pracę.

Przy użyciu kodu #VBA

W przypadku uruchomienia makra które znajduje się poniżej program zrobi za nas całą robotę a my możemy nie przejmować się w jakieś kopiowanie. Osobiście polecam tą metodę ,którą używam prawie na co dzień do pracy z danymi excel. Mamy do dyspozycji trzy funkcję:

  • LTrim() - usuwa wszystkie znaki spacji przed wyrażeniem z komórki
    Np. "    Ala ma kota    " => "Ala ma kota    "
  • RTrim() - usuwa wszystkie znaki spacji za wyrażeniem z komórki
  • Trim() - jest połączeniem dwóch powyższych funkcji, jednocześnie usuwa spacje przed i za ciągiem znaków

Makro do usuwania spacji

To makro usuwa zbędne spacje przed oraz za danymi.

Sub usun_spacje()
        For Each cell In ActiveSheet.UsedRange
            cell.Value = Trim(cell)
        Next cell
End Sub



Brak komentarzy:

Prześlij komentarz